Hi, I’m András a

I am a seasoned software engineer from Budapest, Hungary with a strong focus on mobile app development using .NET MAUI and Xamarin.Forms. My expertise also extends to website building for my happy customers and other complex system designing. I am passionate about developing well-organized, maintainable software solutions.

I hope we can get to know each other, to make your uniqueness digital, and bring “your ideas on devices”

I write blog to share the knowledge I’ve gained.

You can explore my professional articles in software development

Resizing the screen when an Entry gets focused in .NET MAUI

When an entry field gets focused, the software keyboard appears, potentially covering the entry field. To provide a better user experience, you need to adjust the screen layout so that the entry field remains visible. First, create a parent class for your views, deriving from ContentPage, and add a HaveKeyboardOffsetProperty. iOS Solution: Next, create the PageElementMapper class to handle the keyboard appearance and adjust the screen layout. Finally, register the mapper in the MauiProgram.cs file. Android solution: On Android, you can use a PropertyChanged method of the HasKeyboardOffset: Remarks The provided solution offers a way to manage this in .NET MAUI on iOS. However, always be open to improvements and share your solutions with the community for better practices. This might not be the best solution to do it.

.NET MAUI Hide software keyboard when tapping out of an Entry on iOS

To hide the software keyboard when the user taps outside the entry field, set the HideSoftInputOnTapped property to True in your ContentPage definition. Please note that the HideSoftInputOnTapped property might not work as expected when tapping on certain controls like ScrollView. In such cases, you might need to implement a custom behavior to handle keyboard dismissal.

Resolving SQLite issues for .NET MAUI

Recently, while working on ExampleApp, we faced two significant errors and found effective solutions for both. Here’s a detailed account of the problems and their resolutions. System.TypeInitializationException To resolve this error, we needed to install the latest NuGet package for SQLitePCLRaw.bundle_green. This package ensures that the necessary SQLite libraries are included in the project. Add the following package reference with the latest version to your project: In the AppDelegate.cs file, add the following line to the CreateMauiApp method: System.ExecutionEngineException in iOS Release Mode This error occurs due to the JIT compilation attempt in AOT-only mode on iOS. The solution is to install this specific version of the sqlite-net-pcl.It will ONLY work with 1.7.355 or below.  This solution is also applicable to Xamarin projects.

Customizing .NET MAUI Map’s pin Z-Order, Rotation, and Anchor point – Android

This post will build upon the excellent tutorial on customizing map pins in .NET MAUI by Vladislav Antonyuk, and focus on adding these specific adjustments for Android. Define the Anchor Points enum, get a method to return anchor floats We start by defining an enum to represent the different anchor points. A helper method, GetAnchorPoint, will return the appropriate anchor coordinates based on the chosen enum value. This method returns the normalized coordinates for each anchor point, which can then be applied to the pin’s icon. Modifications to the Custom Map Handler Now, let’s focus on the custom map handler, where you’ll need to modify how each pin is added to the map. Following the setup from Vladislav’s tutorial, you only need to adjust the following parts in the OnMapReady method for Android:

Disabling Map Zoom Controls and Other Buttons in .NET MAUI Android

In this post, we’ll guide you through the process of disabling these UI elements (zoom controls, compass, and location buttons) in your Android map implementation using a custom map handler. This approach gives you more control over the user experience and map functionality in your mobile app. Creating a Custom Map Handler To disable these controls, we need to customize how the map is rendered on Android. This involves creating a custom map handler that intercepts the way the map is displayed and adjusts its settings. A detailed tutorial for creating custom map handlers can be found in this great guide by Vladislav Antonyuk. We will extend that concept here. First, we need to implement a MapCallbackHandler that disables specific controls when the map is ready. This is done in the OnMapReady method, which is triggered when the map is fully loaded and ready for interaction. In the OnMapReady method, we access the googleMap.UiSettings property, which contains several settings that control the map’s UI. In our example, we set the following to false: You can also adjust other settings here, such as disabling tilt gestures or zoom gestures if needed.

Using Different Entitlements for Debug and Release Modes in .NET MAUI – iOS

When developing a mobile app using .NET MAUI, particularly for iOS, it’s essential to configure your application differently for debug and release modes. One of these differences is the APS-environment setting, which dictates how your app communicates with Apple Push Notification services (APNs) during development and production. What is Entitlements.plist? The Entitlements.plist is a property list (plist) file that defines various capabilities or entitlements for your app. Entitlements are special permissions that allow your app to use certain services provided by iOS, such as iCloud, In-App Purchases, or push notifications. For push notifications, the Entitlements.plist file contains the APS-environment key, which indicates to Apple whether your app is in development or production mode. Based on this, the app uses either the sandbox or production APNs. What is APS-environment? The APS-environment (Apple Push Services environment) is an entitlement used to specify the environment for push notifications. This entitlement informs Apple’s servers whether the app is running in a development environment or in production, determining which server to send the notifications through: This configuration helps separate testing from live user interactions and avoids accidental notification delivery to users during testing. Configuring Different APS-environments for Debug and Release To configure different environments for Debug and Release modes in your .NET MAUI project, you can modify your .csproj file as follows: It’s important to ensure that both Entitlements.plist and Entitlements-Production.plist files are not included in the build by accident. This can be achieved by setting their Build Action to None: This step ensures that the files are correctly associated with your app for code-signing purposes but are not compiled into the app bundle…

Get these news directly into your inbox

Let's make your uniqueness digital.

Bring your idea on devices

Bitfox logó

at my company, bitfox.hu, we turn your digital dreams into reality.

Cross platform mobile applications

Unlock the potential of your business with our cross-platform mobile app development services. We specialize in creating high-performance, user-friendly mobile applications that run seamlessly on both iOS and Android devices. By leveraging frameworks like .NET MAUI and Xamarin.Forms, we ensure your app not only looks and feels native but also reaches a wider audience with a single codebase. This approach is more cost-effective than developing separate native apps, saving you time and resources. Whether you’re looking to build a new app from scratch or enhance an existing one, we deliver robust, scalable solutions tailored to your unique needs.

Fully responsive websites

Elevate your online presence with our fully responsive website development services. We specialize in building dynamic, visually appealing websites using WordPress, ensuring they look and perform flawlessly on any device. From desktops to smartphones, your site will provide an optimal user experience, enhancing engagement and accessibility. With a focus on modern design principles and best practices, we create websites that are not only aesthetically pleasing but also fast, secure, and easy to manage. Whether you need a brand-new site or a redesign, we deliver tailored solutions that meet your business goals.

Custom softwares

Transform your business operations with our custom software and hardware development services. We specialize in creating bespoke solutions tailored to your specific needs and challenges. Whether you require a complex enterprise system, a streamlined workflow application, or unique software tools, we leverage the latest technologies and methodologies to deliver high-quality, scalable, and secure solutions. Our expertise extends to developing software that seamlessly communicates with custom hardware, providing a cohesive and efficient system, enhancing functionality and user experience.

What our satisfied clients say

Marcell

Turner
As a turner, I rely on precision and efficiency in my work, and I found the same qualities in András. Their expertise in web development has significantly improved our online presence. The website they created is not only visually appealing but also highly functional and user-friendly. I highly recommend bandi for their professionalism and exceptional skills.

Benjamin

Industrial alpinist
Bandi did an outstanding job creating our new website from scratch. His expertise and creativity resulted in a sleek, modern design that perfectly represents our brand. They were professional, responsive, and a true pleasure to work with.

Karina

Conductive pedagogist
Bandi created a delightful and user-friendly website for our development centre. His design perfectly captures the warmth and joy of our environment, making it easy for parents to find information and stay connected.

Connect with me

Ready to get started?

Reach out to me for a personalized quote. I pride myself on quick response times and am committed to providing you with a detailed proposal as soon as possible.

Don’t wait any longer to start your digital journey. Connect with me now and let’s create something amazing together!

Or drop a message here

    This form uses Akismet to reduce spam. Learn how your data is processed.