Ask HK: Quickest way to develop mobile apps as back end engineer in 2021?
I'm a backend engineer who has very limited experience with mobile engineering. I would like to build an app which is simple e.g. filling forms, showing charts, register/login etc. Basic presentation layer on top of backend API. I'm looking for the quickest way to build this, preferably hybrid app which can compile to iOS & android from the same codebase. What are my best options for framework in 2021? Take a look at Flutter: https://flutter.dev or React Native https://reactnative.dev
Both should do the job pretty well. One more vote here for flutter. Dart is not a language I’d want to use day by day but it gets the job done without getting much in the way. Tooling is great and there are a lot of libraries you can use for mobile platforms. Desktop support is a bit behind but is usable. You can also look into something like flutterflow.io to skip some boring parts of ui building. Haven’t used it much but since it allows you to export your code it does make building your initial pages much easier. After you get past the initial pain, it's native Java & Swift. Implementing something twice seems like a bad idea, but after fiddling with "cross-platform wannabe" solutions I can safely say that native is the way to go. I can do it for you if it's as easy as you make it feel, if you want to. I've worked on a production app written in react native for 3 years - if the use case is as simple as you say, it should be absolutely fine. It can become an issue when interacting with eg camera or Bluetooth, bur that's likely to be the case anyway. Expo is pretty good. Anecdotal of course, but there is a reason react native / expo exist and are as popular as they are. Kotlin of course for native android. Java is dead for android development… no point in using it with new apps. I would agree with this if Java / android SDK was as nice as swift. Yeah I agree, what they did with Swift / the iOS library is an absolute masterpiece, but I feel like conceptually they're very much the same and once you've got the hangs of one, you'd easily switch to another, at least for a project as simple as OP says it is. Kotlin and compose UI are way better Kotlin for native android is great! As others mentioned flutter is good! Google codelab has good tutorials on getting you started for simple apps [0], follow the two part write your flutter app tutorial and then others. I've heard about some jank issues with iOS so you may want to check on that [1] [0] https://codelabs.developers.google.com/?cat=flutter
[1] https://thomasmiddel.medium.com/flutter-its-poor-ios-perform... From the easiest to the most "difficult": Build a todo list with the 3 tech and make your choice. Currently moving an old Angular+Cordova project into Capacitor... Capacitor is very poorly documented in my opinion. The official documentation seems sufficient but it has been, at least in my experience, pretty easy to run into edge cases that don't have straightforward documented solutions available, and it's obviously a bit too young to have a ton of StackOverflow answers available, for example. My understanding is that the Cordova team and community has mostly moved on to Capacitor, and while there is some backward compatibility, it is often not evident to what extent you need to tinker with both to get them to work. Hey I am working on a low code framework for a use-case like yours for both WebApps and Mobile Apps. Think of it as combination of glitch.com and bubble.io / www.adalo.com My contact info is in my HN Profile. I would like to learn more about your use-case. Why wouldn't you just make an old school website that renders all the stuff on the server and is mobile frindly the same time? If you really strive for an "app" experience, wrap it in a WebView or look at the PWA approach. I would suggest resort to low code/no code tools - it will
enable you to build apps without learning much on frontend. Ideally tools like Dronahq or retool can help. Disclaimer: I run marketing at DronaHQ If you don’t know front end development Flutter can get you a very long way very quickly. Does it need to look pretty or are you looking for barebones functionality? Is a mobile web app ok or is there a lot of interaction on the client and it needs to work over a poor or non-existent net connection? It has to look professional for sure. But the UI won't have anything fancy, only some line charts and few forms. Flutter is great, but I don't recommend going down the state management rabbit hole. Some solutions take something that is fast, productive and fun, and turn it into something that is overengineered. Use Adalo[1] or something like it. What doing hybrid buys you is… learning 3 paradigms. The hybrid language/framework needs to be learned. The ios and android paradigms need to be learned. And you will do plenty of debugging. Across all three. Don’t ask me how I know. Coding mobile apps since 2009. In native and in all hybrid platforms. Android and iOS and sadly Microsoft. As a backend myself I would go with the Ionic framework. https://quasar.dev/ if you prefer Vue.js If you're going with Ionic, do not go down the Cordova path. I haven't tried Capacitor, but that looks like an option now. I used both, Cordova isn't a choice for 2021. It's slow and feel like you've 10fps on your phone. CapacitorJS is better, it's not React Native ofc, but the feeling is far better than Cordova.