How to create iOS certificates for Ionic Package on Windows/Linux

With the recent announcement of Ionic Package you can now build your Ionic app for iOS even without a Mac.

However you still need to set up Certificates and Provisioning Profiles in the Apple Developer Member Center, then upload them to your ionic.io account before you can build anything.

The Ionic Package documentation explains how to set up iOS Credentials using OS X. But what if you don’t have access to a Mac? That’s supposed to be one advantage of Ionic Package: it lets you build iOS apps without a Mac, right?

Luckily it’s entirely possible to set up the certificates using Windows or Linux as well. Here’s how.
Continue reading

How to use JavaScript 2015 (ES6) now in your Ionic app

ECMAScript 2015 has finally been approved a few days ago. The new JavaScript standard – also known as ES6 – introduces a wealth of new features, from arrow functions and classes to block-scoped variables and modules, and many more.

JavaScript 2015 is a much richer, more modern language that tackles many of the shortcomings of earlier versions and is a lot more fun to work with. Shame that we now need to wait some time before all the major browsers will support the new standard… Or do we?

Well, thankfully we don’t. We can use ES6 right now. There are a few transpilers that can take ES6 code and translate it into ES5 code that happily runs on existing browsers. In this post, I’ll show you how to configure an Ionic project to use the Babel compiler.

Continue reading

Immutable Value Objects in Java with Google AutoValue

Java 8 addressed many of the biggest pain points in the Java language, from lambda expressions and functional-style collection operations to the new Joda-like date and time API.

One notable miss is something like Scala’s case classes or Kotlin’s data classes: a simple way to define immutable value objects. The amount of boilerplate for a class holding just a couple of fields is ridiculous: you need not just a constructor, member variables and setters but most likely also equals, hashCode, and toString implementations, resulting in 50 lines of code in Java versus 1 line in Scala.

Attempts to make things easier range from IDE code generation to the Project Lombok hack. Thankfully, 20 days ago Google released version 1.0 of AutoValue, arguably the best solution to date.

Continue reading

A look at RoboVM: iOS apps in Java

RoboVM is one of the projects I’ve been keeping a close eye on for a while now. Its aim is to allow native iOS apps to be developed in Java. With its recent 1.0 beta 2 release I thought it was time to take it for another spin.

If you ever tried maintaining an app with two separate codebases for Android and iOS at some point you probably wished for a way to share code between the two, reducing duplication and saving development time. I certainly did. And so did Google for their Inbox app apparently – they ended up writing their J2ObjC Java to Objective C transpiler.

Continue reading