Brave Location Mobile Apps and Web Solutions

Android vs. iOS Development

I’ve recent just shipped the same pretty simple app on both Android and iOS, so I thought it would be interesting to capture my current feelings on what is nice - and not so nice - about developing for each platform.

Big Caveat

I’m a lot more experienced building for iOS than for Android, so I’m almost certainly biased towards Apple. Don’t hate me.

Android Good Points

Release Process

Now Apple is getting much better at reviewing apps - my last few releases have all been out in less than 2 days - but it’s really nice to be in full control on when I can push out a new version.

The Google Play developer web site is also more comprehensive than iTunes Connect.

Image Generation

I love the image generation tool in Android Studio, which lets you generate all the image sizes you need for different screens resolutions from one original source.

I also love you can easily generate images from text, which was perfect for use make Font Awesome based icons.

iOS Good Points

Layout

I truly don’t understand exactly how all the different layout options work (LinearLayout, RelativeLayout etc.) Also the visual editor in Android Studio didn’t work well for me, so I ended up working in XML most of the time. That wasn’t fun.

It may be because I’m used to it, but the “storyboards plus constraints” way of laying out UI elements in XCode seems much easier and much more intuitive to me.

I see there is a ConstraintLayout coming in AndroidStudio 2.2, so maybe that will make things easier in future.

Foundation Libraries

IMHO Out of the box, a basic iOS app is simply nicer looking and easier to use than an Android app. I think the foundation classes on iOS are just better designed. I had to do much more work on Android to make my app half-decent looking, especially with my limited design skills.

XCode

Android Studio is just a little less polished to my eyes. Almost certainly this is because it’s cross-platform, and in a few places you can see this where there are non-standard UI elements used rather than platform specific ones.

It’s not that it’s terrible to use, but XCode just feels faster and looks nicer on OS X.

Summary

I still think developing iOS apps in XCode is easier and frankly more fun than the Android Studio/Android equivalent.

However I was pleasantly surprised how much things have progressed in Android Studio since I first played about with Eclipse a few years ago, and I’ll definitely consider doing more Android work in future.

N.B. This blog post has now moved to https://writingontablets.com

Daily Optimiser v3.2.0 Available

The latest version of Daily Optimiser - v3.2.0 - is now available on the App Store.

There are quite a few small but significant changes in this version:

  • A cleaner UI to make the actual useful information stand out more
  • Share or print your daily agenda
  • 3D Touch launch options for newer iPhone users
  • The app now remembers whether you were last viewing meetings or tasks on launch (iPhone only)
  • Simpler help options

It was fun supporting printing, as previously I thought it was harder to implement than it actually was. Basically you can pass in some HTML into a UIMarkupTextPrintFormatter object, and then pass that as one of the activity items into a UIActivityViewController.

N.B. This blog post has now moved to https://writingontablets.com

Pixagogo Out

As expected, Instagram has now removed several of their API endpoints, so my Pixagogo app has now been disabled and pulled from the app store.

Not entirely sure why Instagram are doing this, but it’s their ball so they can take it home if they want to.

It was fun while it lasted.

Pixagogo Out.

N.B. This blog post has now moved to https://writingontablets.com

Yeltzland Android app released

By “popular demand”, I’ve now made an Android version of my Yeltzland app.

Just like the iOS version, the app just makes it easy to read everything about the mighty Halesowen Town FC (Forum/Official site/Yeltz TV/Twitter/…) in one place rather than have to click around different places. There is no new content you can’t get elsewhere.

It’s my first Android app that made it as far as the Google Play Store, and it was interesting to port a relatively simple native iOS app over to Android - but I’ll leave my more technical observations to another post.

The first version of the app is available on the Google Play Store now.

N.B. This blog post has now moved to https://writingontablets.com

Azure vs Firebase for iOS push notifications

I wanted to add push notifications for my Yeltzland app, an interesting task which took longer than expected to complete.

What I wanted to do was to push notifications to the app during game time, which copies tweets from the club’s official account as notifications. This means I can get goal updates etc. without having to turn on notifications from the account in the main Twitter app (which can get a little tiresome!)

The server component part was pretty easy, as I already have a data feed of the team’s fixture list, so I knocked together a quick NodeJS script run in a corn job to use that plus the Twitter feed to generate the notifications.

However I didn’t want to build a full web app to manage user registrations myself just to do this, so it made sense to use an “off the shelf” notification hub instead.

Firebase

Firebase seemed a good choice as a notification hub to try first, especially since at Google I/O they’d just done a major release to pull many disparate developer tools under the Firebase brand.

Firebase offers unlimited notifications, plus support for both Android and iOS, and it looked easy to set up.

In fact I did get it working pretty quickly, but during testing it seemed really unreliable. Notifications wouldn’t get delivered, or spasmodically, and I sepnt a couple of days trying to figure out what was going wrong without much success.

Now it could be that the iOS support has issues (my guess is the service has been mainly Android only before), or more likely I was doing something wrong, but in the end I gave up very frustrated.

Azure

I thought I’d give Azure a go instead, and it was really easy to setup a working Notification Hub without much effort at all.

Out of the box, the notifications seem much more reliable, and I’m really happy with the service so far.

I really wish I’d have started with Azure rather than wasting 2 days wrestling with Firebase.

One minor thing I did have to do was to have separate hubs for “sandbox” and “production” modes, which wasn’t clear from the Azure portal interface.

Conclusion

Your mileage may vary, but I found Azure a much more reliable notification hub for iOS and the client-side code was much simpler too.

I’d definitely recommend checking it out for small projects, although for heavy usage there is a cost involved compared to the unlimited free usage Firebase offers.

N.B. This blog post has now moved to https://writingontablets.com