7 ms·
I have a web application with a lot of users. My users are happy to use the web. But because of better monetization options, I sometimes dabble with the idea to
by TekMol 3y ago
I have a web application with a lot of users. My users are happy to use the web. But because of better monetization options, I sometimes dabble with the idea to build a native mobile app.
Some years ago, I tried to build an Android app. It required an insane amount of tooling. Hundreds and hundreds of megabytes of stuff. GUI applications you have to use etc. I didn't even try to build an iOS app because that probably means you have to own a mac.
Is this still the same?
Or are there some linux command line tools these days I can use to convert a web app into an app that I can put on the Android/iOS app stores?
- tadfisher 3y agoGoogle has a CLI tool for producing an APK bundle: https://github.com/GoogleChromeLabs/bubblewrap https://github.com/GoogleChromeLabs/bubblewrap Tutorial here: https://developers.google.com/codelabs/pwa-in-play https://developers.google.com/codelabs/pwa-in-play
- layer8 3y agoIt’s still the same. You can rent a Mac in the cloud for iOS development though.
- mksybr 3y agoYou can build on the command line with gradle. I did end up installing Android Studio for the sdk and virtual machine installation, but I'd assume it could be done on the command line as well.
- jjnoakes 3y agoI've downloaded just the command-line tools before and used 'sdkmanager' to list and download sdk versions and virtual machines, so it is definitely doable without Android Studio, although it isn't obvious (or at least it wasn't to me).
- elric 3y agoI don't understand why this was getting downvoted? The parent commenter is right. You can build on the command line with gradle. It will still download hundreds of megabytes worth of dependencies (the Android SDK etc). But at least you don't need any GUI tools.
- dmazzoni 3y agoIt's an SDK for an entire OS, plus the emulator (basically the whole OS in a VM), developer tools and more. It's not much different in size than the SDKs for macOS or Windows and it's much more cohesive.
- mathiasgredal 3y agoI have done this, but for some reason Android SDK has to be weird, so you have to download the SDK seperately and then create a properties file in to root of the project with the path to the Android SDK. Everyone then also has to have their own version of this file, since the path is likely different. You also have to make sure that everyone downloads the same version of the SDK. (also the path to the SDK cannot have any spaces) Why can it not be like other Gradle dependencies, where Gradle will just download the files automatically?
- whstl 3y agoThere are things like Cordova that make it a bit easier, but yes you need hundreds of MBs of stuff to compile and test. Debugging was a bit of a nightmare, though. It is also possible to deploy to Apple with things like Github Actions without personally owning a Mac (and it can publish to Google too, naturally), but then testing is not trivial. I know 90% of HN will disagree but there is a market opportunity here to make this better.
- stouset 3y agoI’ll be honest, if you don’t own or regularly use a Mac or an iPhone, the odds that you are going to make compelling software for either of those platforms is effectively zero. The web and app stores are littered with the corpses of failed, poorly-ported iOS and macOS utilities written by developers who didn’t fully understand that those systems have their own design language, cultural norms, and feature sets. They chew through battery, perform poorly, confuse users, look like shit, and feel completely alien. Should that totally stop you from porting some useful tool? Maybe not. But the chance that it will see any sort of use outside of an extremely niche set of users is slim and it’s worth accepting that upfront if you’re going to spend your time and effort on it.
- Jensson 3y agoGames are the main appstore revenue driver, and I don't think that game ports have much to do with iOs standards. It isn't like Fortnite or Genshin Impact on iPhone is significantly different than on Android.
- stouset 3y agoNo, but it doesn’t sound like GP was talking about games. Yes, games are a completely different animal.
- whstl 3y agoTrue, but there is also a business opportunity for dramatically simplifying game deployment, not only web apps. Unity has tools that can partially help with that but their execution also sucks. You still need some half-working script downloaded from Github or some random site to deploy to Apple/Google if you don't want the hassle of using the default tools. It's the same for consoles. It's an ungodly pain in the ass even with Unity. Godot makes some of its money by porting to consoles, for example. But I don't know if there's any money there for a scalable solution.
- Alifatisk 3y agoNot if you use Flutter
- smallnix 3y agoDoes anyone use that in production for large B2C applications?
- quaintdev 3y agoGoogle pay is written in Flutter
- surajrmal 3y agohttps://flutter.dev/showcase https://flutter.dev/showcase has many high profile examples
- Alifatisk 3y agoYeah this answers the question pretty much
- maelito 3y agoThe French railway ticket website, sncf-connect.com is in Flutter. Largest e-commerce service in France.
- MajimasEyepatch 3y agoFlutter is pretty nice, but I have a really hard time trusting Google to continue supporting it.
- bsder 3y agoOne of the Flutter primary devs just left Google and is still working on Flutter at his new gig. That's a good sign that it's getting some momentum outside fo Google. (I agree with you, though. Sadly, the Flutter management team seems to be where Google sends shitty managers for punishment.)
- etchalon 3y agoGoogle has Bubblwrap, which will take any PWA and create an Android wrapper for you: https://developers.google.com/codelabs/pwa-in-play#0 https://developers.google.com/codelabs/pwa-in-play#0 There are tools like that for iOS too, but you absolutely have to have a Mac.
- charcircuit 3y ago>It required an insane amount of tooling. The all the extra tooling makes it easier to make Android apps. Nothing is stopping you from downloading the Java JDK and Android SDK and running javac, d8, aapt2, zipalign, and apksigner yourself.
- wiseowise 3y ago> Nothing is stopping you from downloading the Java JDK and Android SDK and running javac, d8, aapt2, zipalign, and apksigner yourself. That is the tooling that OP is talking about.
- charcircuit 3y agoIt sounded to me that they thought they had to use Android Studio as they were complaining about a GUI.
- eomgames 3y agoI've had success with react native for deploying web type apps onto both ios and android. Expo really flattens the learning curve, it's something to grow out of for sure. I look at it like having an app vs wanting to have an app.
- freedomben 3y agoWhat do you use for front end for your web app? If you use React or Vue or something that does client-side rendering, you can often turn your app into a PWA fairly trivially by just adding a manifest. That is IMHO definitely the way to go as long as you don't need to use native functionality/APIs. PWAs are still a little tougher on Apple since Apple holds the reins to their platform very tightly and doesn't want apps getting to users without going through "curation," so if iOS is an important market for you and your users will find you through the app store (rather than looking for you in the app store after finding you elsewhere), then a PWA may not be the best choice. If you use server-side rendering, then it will of course be more work, but I'd still probably go the PWA route and write it in React or Vue. You already know JS so there's much less learning, and it's the most "write once run anywhere" that there is. You'll likely have to buy a mac though, although there are services you can "rent" one for building/signing/submitting to Apple. React Native can be a good option as well, especially if you need to call native APIs or must be in the Apple store (Google Play Store can take you as a PWA). Most of your code can be js/ts so less learning curve, and you can generate a submittable app package that can go in the Apple store (and of course Google). If you need to make extensive use of native APIs though, then a real native app may be better, though of course you will need a separate one for ios and android, and there's a lot of learning to do. And you'll definitely have to buy a mac. tldr: a PWA is (probably) the way to go
- stronglikedan 3y ago> But because of better monetization options, I sometimes dabble with the idea to build a native mobile app. Likely not in this case.
- 5350-uiop-1130 3y agojust porting a basic chrome web extension, like 2 js files to safari requires something like 10 GB of Xcode downloads and various other crap. i'm not doing that.
- holoduke 3y agoWhy not if I may ask? Vim only user? Its possible to build ios and android apps with your own build tools. Its a lot true.
- 5350-uiop-1130 3y agoi believe apple intentionally makes it difficult. especially in the case of safari web apps because of their app store monopolies. so i just dont want to support their web browser or their platform in general. as a personal choice. i build some tools for work colleagues using web extensions and i refused to port it to safari. someone else can take that task if they wish.
- holoduke 3y agoTry to create a app like behavior in javascript and use a webview in android and ios to wrap your app. We do it like that. You will still have some native parts like push notifications, ads, social logins etc. But your ui render is web. Just make sure you have an app like experience. Doable these days.
- anordal 3y agoThe irony is that most people who think they want an app would not see the difference between that and a shortcut to your webpage.
- izacus 3y agoSo the size of the tooling was about the same size as the your web app pushes on every user? The horror.
- beretguy 3y agoLook into PWA.
- CamperBob2 3y agoI tried to build an Android app. It required an insane amount of tooling. Hundreds and hundreds of megabytes of stuff. GUI applications you have to use etc. FPGA developers snicker under their breath, but if you look closely you can see the tears welling up in their eyes...
- rmbyrro 3y agoPerhaps a progressive web app will work for you
- ederamen 3y agoYes.