Some thoughts on mobile app development and developers

I’m a big believer that native is best when it comes to mobile apps. PhoneGap has for me never been a satisfactory answer. I’m personally not a big JavaScript fan, although some of the newest developments may change that. I prefer my languages strongly typed with mature deep standard libraries. HTML mobile user interfaces lack that special something.

For the past 3-4 months I’ve been getting to know C# and the Xamarin platform. It’s a great solution for many of the projects I’m working on. C# is a well designed language and Microsoft is no longer the big bad wolf they once were. Xamarin Studio can be painful but Visual Studio + VsVim + ReSharper is delightful (most of the time.)

For all intents and purposes Xamarin apps are native for what matters – the UI. The MVVM approach means my code is better architected because I can’t be lazy and mix business logic and interface if I’m to maximise code reuse.

The difficulty with wanting more apps to be developed in Xamarin is in recruiting new developers. I’m not expecting to be able to hire an experienced Xamarin developer. What I do want though is a native mobile developer open to adding C# and the Xamarin platform to their developers toolkit. I’ve done a number of telephone interviews with people who know nothing about Xamarin but want to stay pure native. For me a good developer should be open to learning new stuff whenever possible. A developer working in the mobile space must be readily adaptable. Disliking something without properly evaluating it isn’t a good tactic if you want your skills to stay current and relevant.

There are lots of great ways to create mobile apps. I still love coding the way Apple and Google intended, however there are relevant alternatives which are worth trying. I’m personally quite excited by React Native that was announced last week, despite my reservations about JavaScript. Despite all I’ve said I don’t believe in flitting about, without learning something in depth, so I do respect those who want to spend a little more time really getting to grips with one particular technology. For those people though with greater experience I would just say keep an open mind.

Whichever way you code apps I hope you enjoy all the exciting new developments 2015 will have to offer!

Controlling the size of an image on a page in Trunk Notes

I’m going to start posting answers to some emails as blog posts. Lots of you ask interesting questions about Trunk Notes and Go Calc, the answers to which deserve wider audience.

A recent question was:

“Is it possible to control the size of the image shown on the wiki page? Having a smaller thumbnail that one could click on to access the full image would be helpful.”

The answer is yes, however I admit the syntax could be simpler.

If you had an image called 26_12_2014.png to display a small version of the image you can write:

![](26_12_2014.png =150×150)

You may notice that the image is still the same width but stretched. The reason is the stylesheet which determines how your pages work.

To fix this turn in the custom stylesheet setting and remove the following text from the page Special:SetStylesheet:

#contents img {
width: 100%;

The emailer then asked how to make this into a link. The answer is the slightly cumbersome:

[![](26_11_2014.png =150×150)](/File:26_11_2014.png)

Phew! What we need here is a Lua script to help. I will get something together and post the answer later. If anyone wants to beat me to it let me know!

A Review of 2014

I promised a little while ago on Twitter that I was going to start blogging again. My last blog post was from February, far too long ago for this to be considered an active blog!

My goal is to change from writing solely about Trunk Notes and Go Calc to composing more regular posts on mobile app development, technology and anything else I find interesting.

2014 has been a year of change for me. Whilst there have been a few updates to Trunk Notes, and a much overdue one for Go Calc to support the iPhone 5 screen, I have been mostly preoccupied by other things.

My day job is at a great agency in Birmingham (UK) leading a team of fantastic mobile developers on a wide range of apps. These apps range from an established app which was in Apple’s “Best of 2013, Disruptive category” that is still gaining hundreds of new users each day, to an MVP for two people with a great idea and a small amount of investment. Moving forward I will be working on exciting projects for consumers and on enterprise apps which will have transformative effects on business processes.

There have been many exciting developments in technology this year. For me it was the release of the iPhone 6 and iOS 8 which had seen me move back to iOS for my daily device. My Nexus 4 is now squirreled away in a drawer. Some/many would argue iOS 8 was all about playing catch up with Android. However there are now features, such as action extensions, that provide a major boost to what can be achieved on a mobile device without needing to be an evil genius. My hope, one shared by many others in the tech community, is that Apple focuses more on improving stability and adding polish over the next few months.

As a developer I’ve been excited by the introduction of Swift, however my focus has been on dealing with the challenge of cross platform mobile development. Working with clients who want to see their ideas on both iOS and Android had always meant persuading them that two native apps was the way to go. I’ve never been happy with Phonegap and similar HTML/JavaScript based solutions. Basing the entire interface around a web view produces a UI that is, in most instances, unsatisfactory. JavaScript has seen tremendous growth over the past couple of years, however for me a weakly typed language which lacks built in obvious support for standard object oriented programming doesn’t fit the way I work. The Xamarin platform is the great compromise. C# is a fantastic language and the underlying technology is mature and stable; even more so now that Microsoft is no longer evil and is making exciting moves in development communities. Most importantly being able to work with native interface paradigms is essential. Apart from a slightly slower launch time and a bigger binary an app created in Xamarin should be indistinguishable from one created in Objective- (iOS) or Java (Android). I will be blogging in the future about my love affair with Xamarin! Xamarin is the main reason I’ve only spent a cursory amount of time with Swift.

Of course the biggest life changing event in 2014 for me was the birth of my first child – Rheuben. If you are a parent you will understand why this, as with many experiences, is both incredibly unique and one that connects you with what it means to be human.

2014 was a fantastic year on so many levels. 2015 is also looking to be a year of change. I will continue to improve Trunk Notes. This will be connected with being an evangelist for the personal wiki – a wonderful way to organise personal information. In the main though I’m going to be spending lots of my time architecting great mobile solutions through better project management, systems design and cross platform strategies.

As I said at the start of this post, I’m going to be blogging much more frequently. This post is being drafted on a Sunday morning with a sleeping baby curled up next to me. There are many such moments which I can use to keep this blog alive with content. Enjoy the rest of January everyone and hopefully I will be writing again soon!

Trunk Notes 4

Trunk Notes 4 was released in January. This updated TN to iOS 7 and included a number of fixes for Dropbox.

The second point release of version 4 has just been submitted to Apple. After a period of months between releases the aim is now to do frequent small updates to respond more quickly to bugs and requests for new features.

Although 4.0.2 is primarily a bug fix release, concentrating mainly on erratic cursor movement, there is a new feature for those of you who use a Bluetooth keyboard. With iOS 7 Apple finally enabled developers to add easy support for keyboard shortcuts when editing text. Trunk Notes takes advantage of this and adds the following keyboard shortcuts:

  • ⌘ + B – Bold
  • ⌘ + I – Italics
  • ⌘ + L – Either inserts [[]] for a wiki link, or converts a http:// link into an external link e.g. <>
  • ⌘ + T – Strikethrough
  • ⌘ + 1 – Cycles through 1st, 2nd and 3rd level headings for the current link
  • ⌘ + 2 – Starts a list
  • ⌘ + 3 – Starts a numbered list (notice that these three shortcuts correspond in order to the ordering on the toolbar)
  • ⌘ + D – Inserts a timestamp
  • ⌘ + S – Saves the current note

In the coming weeks support for TextExpander snippets will be reintroduced. If you have any small nice to haves you’d like to see in TN email!

A Quick Review of 2013

2013 has been quite a year, for my personal life and for app development. The two main events this year have been getting married and, not long after, becoming an expectant Dad to be. These two big life events have meant a little less time for Apps On The Move than I anticipated at the start of the year. There have been a few minor updates to Trunk Notes in 2013 – and a bigger update which improved the user interface. Work is still ongoing to move Trunk Notes to iOS 7, and to fix a couple of remaining issues with the Dropbox sync. This should be completed in January. After this release I want to return to more frequent smaller updates and finally address some of the promised improvements from the forums.

Go Calc has remained untouched, at least it was until December. I have finally started work on an update to Go Calc. It will bring about an updated user interface and will be iOS 7 only. I’ve yet to decide whether this will be a new app or an upgrade.

A number of other projects have been started and paused. Trunk Notes for Mac and Android have been promised but have not yet reached a stage where they can be delivered. I’ve been using Trunk Notes for Mac on a daily basis however still need to work on so that it is suitable for release. Trunk Notes for Android has progressed but stalled towards the end of the year due to a lack of time.

My daily development job is working at One Result – a mobile and web development company in Birmingham. I’ve worked on some great apps for One Result this year. It started off with the fantastic news that an app I worked on was part of the Best of 2013 in the disruptive category. It then went on to see the release of Comics in the Classroom, a great app aimed at teaching history through comics. There have been lots of apps for enterprise customers, who I can’t mention, the development of augmented reality platform and a lone worker and personal safety solution. The year ended with a hack day which saw us develop a game in a day using SpriteKit – a new iOS 7 framework for making 2D games.

2014 looks to be an exciting year ahead – lots of stuff happening at One Result, major planned improvements to Trunk Notes and Go Calc, and of course a new baby Kennard.

To all of you who have been Trunk Notes and/or Go Calc users in 2013, Happy New Year!