Hey everyone! I'm a professional developer looking to dive into the world of cross-platform application development. I have an app idea that I want to turn into a reality where it can run on various devices, including desktop. Here are the main features I'm aiming for:
1. A central server for data syncing and storage.
2. Offline functionality with server sync when online.
3. An offline-only mode utilizing local storage.
4. Compatibility with iOS and Android devices.
5. Access on the web.
6. A desktop version, either as an Electron app or a native application (still deciding).
The heart of the project will involve the backend, which I want to maintain separately from the frontend. Ideally, I want the backend functionalities to be accessible via a Linux terminal, allowing for varied frontend technologies.
I'm proficient in C#, Python, and C, but I'm flexible with languages at this stage. My previous experience mainly includes desktop and web development, so I'm not sure how to make informed choices for this cross-platform project.
I've heard good things about Flutter and Dart, but I wonder if using Dart is a must for the backend, or can I stick with C# for it? If I choose C#, do I have to use specific frameworks like MAUI or Xamarin? And how does Python fit into all this?
I'm hoping to gather insights from anyone who's built real applications with a mobile cross-platform strategy, especially regarding technology choices and any common pitfalls I should watch for. I'm looking to eventually collaborate with a frontend developer since my strength lies in the backend. Cheers!
1 Answer
You might want to check out Docker as a solution. It lets you create a portable environment for your app that can run on servers and desktops—and potentially phones too! By decoupling your backend from the OS, you could have your frontend communicate with your Docker containers, no matter where they are hosted.
That’s a cool insight! I’ve done some Docker work for microservices, but I didn’t realize it could be used for mobile apps too. I’ll definitely explore how that could work for my project.