14
29 Comments

Ask IH: What's your stack for cross platform mobile apps?

As indie hackers or solo founders, developing an app for each platform is not the most efficient way of developing apps across all mobile platforms (Android and iOS primarily).

What tools do you use to speed your time to market and productivity while developing mobile apps for multiple platforms?

  1. 16

    React Native. Native components, JavaScript shared codebase, easy to still write native code if you ever want to, has a lot of community support (prebuilt libraries you can use) and it's maintained by Facebook so it's more likely to survive for a longer time.

    Easy to learn, and speeds up development/release time a lot. Perfect for makers.

    1. 2

      +1 for React Native - Getting out for Android and iOS took hardly any effort, and it feels quite native. Great for MVP and it feels easy to setup/maintain as a solo founder. I used https://expo.io to speed things up at first, but even transitioning to a normal react native app was doable.

      1. 2

        I used https://expo.io to speed things up at first, but even transitioning to a normal react native app was doable.

        Good stuff 💪

        For anyone starting, I highly recommend skipping Expo. It can seem interesting at first, but it'll eventually mess with libraries/dependencies.

    2. 1

      Knowing only AngularJS, would it still make sense to learn React Native or move over something like Ionic?

      1. 3

        I'd say use what makes you more productive and can get your MVP out faster.

    3. 1

      Yeap. Use this too

  2. 5

    Possibly controversial answer: don't build cross platform as a solo founder/indie hacker. Build for iOS first and do it native. The platform is more than big enough to validate your concept and grow your app. By the time you need to build for Android, you'll have the resources to do so.

    iOS also has users who 1) care more about apps 2) are more willing to spend money in/on them. I'm a mobile dev and consultant: my clients on both platforms consistently see 80/20 revenue between iOS/Android. If you're just getting started, focus on iOS.

    1. 2

      I think there's probably a few more factors to consider regarding this (I'm a mobile dev as well).

      1. Are your target customers US-only or international? More people use iOS in the US but more people use Android internationally
      2. Are you looking to hire people to work on your app down the road? Cross-platform developers, whether it's React Native, Xamarin, Ionic, etc. are generally harder to find locally.
      1. 2

        Good points! Most developed countries have a critical mass of iOS users, but if you're targeting a developing market, this certainly changes the equation.

    2. 1

      Very interesting. I have an app that is iOS only and will be converting to Android this year. I have a good traction on AppStore and would be expecting more like 50:50 revenue, considering that my app sells worldwide. I could not find any good sources comparing AppStore vs Play revenue for same apps. Any insights?

      Other than that, I decided to go native as I want a professional look and need to optimize memory allocation a lot, which is harder to do from something like Xamarin. And I made the same conclusion as yourself about validation on AppStore which is a huge market anyway.

    3. 3

      This comment was deleted 7 years ago

      1. 1

        This is a tough call, but if you know Android well, your best bet is probably to build for Android first. If you get traction and revenue on Android, you should invest in moving to iOS much earlier than you would were it the other way around.

        And, when it comes time for that, you should probably hire the iOS app development out. Any iOS developer worth her salt can take an Android app as a reference, along with assets and API docs, and turn around a platform specific version for iOS. Should make the contracting process much smoother and cheaper if a functioning Android app is available for reference.

        1. 1

          This comment was deleted 7 years ago

          1. 1

            Great! Good luck!

  3. 3

    I am evaluating Flutter (by Google) which is a new candidate for cross platform for Mobile apps. I am planning to build my mobile version of https://workrituals.com with Flutter. Will share the experience in the future.

    1. 1

      Tried this. Not bad pretty good stuff but I am having issues hooking it to firebase hosting. Still digging into though. Would love to read your experience with Flutter.

      1. 1

        I will update you on my feedback after I launched my app

  4. 3

    I'm a big fan of Xamarin. You can share all of your custom logic, and either create native UIs or go the Xamarin.Forms route and get something like 95% shared code.

    We use it for 6 applications at our company and yes... there have been some painful moments. But most of the time things just work and work well!

    As a plus you can also target mac apps & windows with much of the shared code!

    1. 1

      It depends whether you have a lot of business logic or if it's mostly UI, if the UI needs to be optimized (memory allocations), etc.
      E.g. my app logic is mostly in a static library (C), so using Xamarin means using interop in C#, which is just too much hassle. I also need detailed control over memory most of the time, which is not easily doable.

      Also, the last time I checked, it seemed that for a lot of platform specific features like saving settings I would have to write my own adapters for each platform.

      1. 2

        There's a litany of plugins that do all of that for you. Settings / Media / Geolocation / Barcoding / Maps etc.

        1. 1

          Thanks, I have checked and all looks much more usable than a year ago, when I was evaluating it.

  5. 2

    I have used Ionic on a business app for a long while and I gotta say I hate it with a passion.

    There's so much that randomly goes wrong at every level and finding solutions is incredibly difficult. If you're planning on making any kind of complicated application I'd recommend looking elsewhere.

    1. 1

      Out of curiosity, which version of Ionic?

      I just finished my first project using Ionic 3, and I found it to be amazingly robust, and the docs were top notch.

      1. 1

        Yep, Ionic 3. The docs are pretty good, but rubber meets the road it can be painful. Some of the issues may be with cordova as well (like node_modules getting destroyed and having to reinstall everything constantly), but it's very hard to track down where issues are coming from.

  6. 2

    Big fan of React Native. This is coming from an ex iOS developer. I now can't imagine going back to doing native development. It just feels so clunky.

    Our team is now looking into sharing our Redux store between our mobile and web (React) front end so that we can share even more code and launch on more platforms faster!

    1. 2

      What makes you prefer React Native? I have never tried it.
      I mostly create iOS native apps and really like working with swift.

      1. 2

        Swift is awesome! But once you develop with live reload (and even better, hot reloading), the feedback cycle from compiling native code feels so slow.

        Been playing around with ReasonML, which has been great if you miss the ML-ness of Swift, but it's still not mature IMO.

  7. 1

    Only one other person mentioned Flutter. I can say without a doubt that Flutter is more native-like across platforms than react native.

    It takes time for a framework to grow, but I really believe what they have done with Flutter covers 95% of app development requirements.

  8. 1

    Has anyone used Corona SDK for their cross platform mobile apps?

  9. 1

    For some reason React Native just doesn't click with me at all. So I've really enjoyed working with Ionic.

  10. 1

    I've been using Appcelerator Titanium and released some small apps on iOS and Android but these are more companion apps. I was grandfathered in a while ago but there in an open source version. I'm keeping an eye on React Native though.