I've been considering developing a multiplatform app to help me organize my stuff, focusing mainly on desktop (Windows/Linux) but also wanting support for Android. My background is mainly in C++, but I'm open to learning C# or even TypeScript combined with HTML and CSS. I'd prefer to stick with C++ or C#, as I like strong, typed languages. Here's what I'm looking for:
- Easy development without too many obscure libraries or frameworks—I'd like to maintain control and understand everything in my project.
- Cross-platform support, with desktop as the priority and Android as secondary.
- The ability to save files locally and commit them to GitHub for backup/cloud storage, specifically small .txt files.
- A modern and clean graphical user interface.
Currently, I can handle file management and Git seamlessly with C++, but I struggle to find nice GUI libraries. I considered going the route of a web app but have questions about how to:
- Store data on the local device instead of just browser storage.
- Connect directly with GitHub for push/pull of simple .txt files.
- Install it as a desktop app while allowing file system saves/loads directly.
6 Answers
I've been experimenting with the MAUI framework alongside C#. I’m still getting into it, but I’ve built an inventory management app with an Android component that communicates with an MSSQL backend via a RESTful API. It's been easy for me since I'm used to Visual Studio and C#, so you might find it a smooth experience as well!
If you're looking to create a cross-platform app, you might want to consider building a Progressive Web App (PWA). These smart webpages can install on desktops and work on both Android and iOS. It usually involves JavaScript (or TypeScript for strong typing). I recommend React, but I personally like Vue.js better. Any content you create can easily be saved to GitHub—I've got my presentations and artwork backed up there!
Not a fan of C#, huh? Have you considered Java? It’s often seen as a more straightforward version of C++ since it handles a lot of portability for you. Plus, tools like Gradle can manage your builds. If you embrace OOP, you can check out Eclipse EMF for code generation and instance serialization, akin to UML.
Dart with Flutter is a great option for this kind of app. It's built for cross-platform development and if you're familiar with JavaScript and C++, picking it up should be pretty straightforward!
For creating an app that operates on Android and Windows, definitely look into Flutter. Although it uses Dart, if you have experience with JavaScript and C++, you’ll probably pick it up quickly!
Have you thought about using Qt? It's not the flashiest framework around, but it's reliable and allows you to stay in the C++ realm while offering all the modern features you'd want: hardware-accelerated rendering, scripted GUI with QML, and numerous controls and libraries.
Java might be a viable option, but I’m really leaning towards something that keeps me in a strongly typed environment like C# or C++. Just feels more comfortable for me!