Views

Is Angular still a thing?

“Is Angular still a thing?” Is a question that I’ve heard quite a bit in recent months. React has undeniably grown in recent years, but Angular is still a great framework in my opinion, and getting better which each passing release.

One of the biggest mental model considerations with the AngularJS change to Angular2, was NgModules. The additional module layers introduced a bit of a higher learning curve, and created additional (perhaps unnecessary) complexity. This was acknowledged by the Angular team at the very beginning (years ago), and finally looks like it will be addressed, by making NgModules optional.

Making NgModules optional (just repeating this in case you missed it!!!),  should mean that components will be standalone, Uh huh, and the change is hotly anticipated to be available, in amongst a host of other changes, in Version 12. 

So, my interest was piqued when I read an article recently about just how popular Angular powered Mobile Apps are, making up 20% of apps on Android. Yup. Really!

Did you know Ionic and Angular power roughly 10% of the apps on iOS and almost 20% of apps on Android? Let’s repeat that: Angular powers a significant chunk of apps in the app stores.

https://blog.angular.io/ionic-angular-powering-the-app-store-and-the-web-4c4d420ca117

This was just the motivation I needed to kick off a small side project that I’ve had on the back burner for awhile. That, and because I’m really interested to see just how far the Angular Web/Mobile development experience has grown over the last few years.

Okay, with that prelude out of the way, let’s get into the nitty gritty of starting an Android app using Angular.

Before kicking off anything new, I usually upgrade all of the core packages on my machine, so that means:

  • Upgrading Node.js
    https://nodejs.org/en/
  • Upgrading npm
    npm install npm@latest -g
  • Upgrading Angular
    npm install -g @angular/cli

This helps me feel like I’m ready to work on something bright and shiny.

Native Script

I’ve decided to use Native Script to build an Angular app for Android. There are a few steps to this, based on what you’re already using, so it might be easiest to see the installation guide here:

https://docs.nativescript.org/angular/start/quick-setup

Mobile Testing

To test out the mobile app whilst you’re developing it, you can test it out on your phone by downloading the mobile app, see here:
https://docs.nativescript.org/angular/start/quick-setup#step-3-install-the-nativescript-playground-app

Android Studio

Install Android Studio if you don’t already have it. Also make sure to run Android Studio so that it installs all of the required bits and pieces. I hit an error when trying to run the emulator, these steps helped me resolve it:

cd $ANDROID_HOME<ANDROID_HOME_PATH_HERE>/tools/bin


sdkmanager "system-images;android-25;google_apis;x86"


At this step I hit another error: “File C:\Users\<user>.android\repositories.cfg could not be loaded.

So I just created an empty “repositories.cfg” file in that location, and it was happy to continue on. The next step was to run the following command:

avdmanager create avd -n test -k "system-images;android- 25;google_apis;x86"

Native Script

And finally, install nativescript schematics

npm install --global @nativescript/schematics

Okay, so that involved a few steps, and it’s always a great feeling to make it through to the other side when trying something new, Yaay. With the core packages in place, we can finally get into the build!

Angular Mobile App

So, now to create a new Angular Web and Mobile App, we can use:

ng new --collection= --name=my-superduper-app --shared

Android Emulator

Run the new app using the Android emulator

tns run android --no-hmr

Here, I had a bit of a look through the code, and just changed the app title to see how fast the app was able to recognise the change and update the emulator.

BOOM! We have ourselves the base of a new mobile app.

Summary

In summary, there are a few steps to get everything up and running, but most of those installation steps only need to be done once, to get the emulator working, and it’s pretty smooth after that point.

Till next time, stay curious.

Quick overview for starting an Android App using Angular

Let me know what you think

This site uses Akismet to reduce spam. Learn how your comment data is processed.