During his WordCamp Europe 2016 presentation on the WP REST API, Joe Hoyle introduced the Vienna iOS app for WordPress (at around 40:30).
As such I consider it the perfect project to level up your development skills, while giving back to the WordPress ecosystem–and you get a great app to use as well!
Even if you are not a developer, just using the app, and providing feedback, bug reports, and feature requests is going to be a big help.
Setting Up The Local Development Tools
Vienna is an iOS app, so you need XCode 7 or higher to build the project. This means that you need to run a recent version of MacOS X.
You’ll also need a WordPress site to connect to, in order to test the app. You can find instructions for setting this up in the Vienna readme.
Choosing An Editor
Vienna is written in ECMAScript6, so if you’re not familiar with the features added, I’d recommend reading through the ES6 Overview in 350 Bullet Points article on the Pony Foo site. There are lots of further articles on the subject, that cover certain ES6 features in depth.
The code in Vienna is written in the functional programming paradigm. This approach differs in certain fundamental ways from procedural programming, so it might be confusing at first.
Learning React and React Native
The interface of the Vienna app is written in React Native, which is based on React.
I’d recommend learning React first, and then using the React Native documentation to learn the specifics of iOS development.
React.js Introduction For People Who Know Just Enough jQuery To Get By and Learn Raw React — no JSX, no Flux, no ES6, no Webpack… are both great free resources to get you started.
For those who want to go further, I’d recommend Wes Bos’ paid React for Beginners video course, which goes into a lot more detail.
Vienna uses Redux to manage the state of the app. The Redux documentation has a very short introduction that teaches you everything you need to know to get started.
Wes Bos also offers a free video course that is going to get you comfortable with using Redux.
The Vienna app is still in its infancy, so there’s lots of opportunity to contribute, and make the app better. The skills needed to make changes to the code base can be learned quickly, and you can improve them as you go along.
See you on Github!