Sunday, May 26, 2013

The One More Thing iOS Dev/Design Conference - Melbourne.

So I recently flew to the chilli chilled out Melbourne for the One More Thing Conference ( http://onemorething.com.au ) @ Federation Square.

It's like a mini version of WWDC but focused on tips and tricks for building truly successful iPhone and iPad applications.

This event touched a lot on many aspects concerned with the promotion of ones app/app brand as well as processes and paradigms that extremely successful app creators have used. Given the huge amount of competition now on the app dev gold rush it was important advice.

With talks from some very successful app developers, and people such as Lex Friedman (@lexfri) , a senior writer for macworld who pointed out the average number of apps released to the app store on average was something like~ >450 a day, meaning he receives a quote 'Shit-Ton' of requests to write and review peoples apps on macworld, and gave us all some very good insight into how to request a review without pissing off Macworld and instead impressing them.

I liked that each speaker was different than the last covering something new and unique each time.
I recall:

Karl von Randow's insights on his journey building Camera+ for example optimizing image processing from 10 seconds to 5 seconds on the 3GS.

Maggie Steciuk from Terrible Labs in Boston presented some of the tools they use with regards to their process of rapid prototyping in order to pitch to investors/client, such as Flinto, Framer, Proto.IO, pbon.es/proto.

Li Xia gave an inspiring insight into a mobile app company he runs focused on 'Outdoor apps' and encouraged developers and designers to work on things they enjoy and explained the inherent benefits.

Simon Saëns - Explained successes and failures of some of his games such as Crabitron (http://www.myigadget.com/?tag=crabitron-2), explained the value of having a story and 'targetting' a smaller specific group. An example was they made a parody of Kickstarter which made for great viral news: http://twolivesleft.com/Crabstarter He went on to encourage the need to have as close of a link as possible between the users and the game at all times.

Emma Stabey - A product manager at Seek.com.au took us on the journey she had been through from the beginnings of the seek.com.au mobile and tablet apps and the huge successes they've had from it.

Louise Duncan - Opened my eyes to the world of apps for education and possibilities to work with schools in primary/secondary and tertiary to aid educational processes. Also touched on the value of Augmented Reality apps with education.

Amanda Rösler - From the very successful Toca Boca gave insight into their process for creating 'Digital Toys' for children.

Jaimee Newberry - A ux consultant spoke on some valuable topics such as App copy, from alerts to release notes. And gave the great idea to give all apps a persona when prototyping, designing and developing. e.g. OprahBjork.

Scott Brewer - Works for Art Processors and explained the location aware mobile app that enhances the M.O.N.A museum in Tasmania by means of iPod touches + RFID. Pointed out the value of running surveys frequently from users. The bit about 'Audio Theatro' which they set up at Melbourne zoo was really cool too. http://artprocessors.net.

I felt there was a lot of valuable info to be gained for myself and the team I work with, some big ones, we need to connect more directly with our users, put 'coming soon features' in our release notes from follow up surveys, to using iRate, including an in app newsfeed to convey news to our users, to showing dev progress more transparently via usage of media such as video/images.

The tools and approaches with prototyping are something we already agree with but the talks only reinforced the value of the 'agile iterative working alongside the client approach'... the new tools suggested will be also checked out, as was pointed out with prototyping there is no silver bullet tool.
And one more thing... a recurring theme stressed from the devs, designers and strategists throughout the event: FOCUS ON KEY FEATURES

Also I've now subscribed to the 2 app dev related podcasts unprofessional and 'Mobile Couch' (@_mobilecouch) from Canberra.
https://itunes.apple.com/us/podcast/unprofessionial/id553063604?mt=2
https://itunes.apple.com/au/podcast/mobile-couch/id599454382

Oh and I just found a somewhat more in depth analysis of the event here: http://jellystyle.com/notes/one-more-thing/2013 and _mobilecouch have just released their podcast about the event: http://jellystyle.com/podcasts/mobilecouch/9








Saturday, February 23, 2013

From iOS to Xamarin for Android/Win Phone in Visual Studio

I've operated as primarily an iPhone/iPad developer / UX guy for the past 3 years. This week I was tasked with the challenge to trial Xamarin and port a small checklist app we built for a client to both Android and Windows Phone.



I installed the latest version of VMWare fusion with a freshly installed Windows 7 64Bit image with Visual Studio 2012 Professional to my MBP 2011, 16 GB Ram, 2.2 GHz dual core i7.

My first thoughts: It works, I like it, it can potentially save a significant amount of time( some back of napkin calculations at the end of this post) :)

They have sample apps that you can build and run and learn from  (After solving some errors and addressing some issues easily solved via stack overflow) to kick start your own development of an Android app in C-sharp.

They have a cool 3rd party component store, which is a great idea and may prove to be very handy in the future.

It states on their site "Easily create apps in C# for iOS, Android and Mac".
If you've ever used XCode, you'll know that as of version 4.6, it's naturally extremely good for building iOS apps, and any other alternative just isn't able to compete.

So in my personal humble opinion...ahem.. don't bother. Which leaves Android and Windows phone. Obviously Windows phone should be developed in Visual studio & C# anyway, hence you find the Xamarin website doesn't focus so much on Windows phone, however that's where Xamarin projects designed in a three tier architecture fits in so well, using the SQL data mapping, all of a sudden business logic and the data model (accessors, aggregation, algorithms and all of the other under the hood stuff) can be written once and used for all 3  operating systems.
Also it means Webservice code can be written once, which for reasonably large apps could make it much more economical to develop for multiple devices.


Well 4 operating systems if you include mac OSX... but it should be pointed out to non developer stakeholders the time it takes to write the User Interface / User Experience code for each operating system can still be a significant amount of the development effort, and Xamarin cannot help in this department, where some apps could require 90% UI/UX code and 10% business logic/Data model code, only 10% is being reused. Also (obvious to the developer but seems to fall through the cracks for other stakeholders like BA's the User interface design should be designed for the operating system following the OS guidelines.

So then the experience of the developer with native tools over C# should be considered. Whereas some apps could have a relatively large amount of business rules to develop for and it would suddenly be a very compelling option.


The general gist of the framework:


They have some case studies here.

Some first experiences I found:
- You must have Xamarin Business Edition or higher to use Xamarin.Android from Visual Studio. They have their own IDE (fork of Eclipse) that you can use as an altnerative to Visual studio, but that's not ideal if you wish to build for Windows Phone as well. And entry level pricing ain't cheap, $999 gets you in the game as of writing this article.

- Installing some of their sample apps don't work out of the box without addressing error messages and bringing in third party libraries such as Google Maps.

- I found the android emulators to be very slow, but that's Googles fault.


- Initially I pressed 'start with debugging' in the Tasky 10 minute guide I got a 'Failed to create pbuf surface' error, I restarted the machine and did a clean build without debugging which seemed to fix it.



- The XAML editor for Android in Visual studio is pretty good. well it does the same job as in eclipse, however Laying out XAML for Android User interfaces is like playing battleships. It's an educated guessing game and you have to wait to preview in emulator for each change to see if you got it right. But if it's right on one Android device it could be completely off on a different device. Design is built into Apple’s DNA...Google has just bolted it onto its search engine. Ain't no avoiding this unfortunately.

Me in the Xaml editor:




- On first run of the 10 Minute guide I encountered this error despite following the instructions (The application could not be started. Ensure that the application has been installed to the target device and has a launchable activity), which fixed itself after a restart after I checked stackoverflow for help:




- I also found 5-10 minute loads causing VS to not respond (Microsoft Visual Studio is busy) on the emulator on first load then 1-2 minute loads from then on, no different to using eclipse of course:




Conclusion:
As an iOS developer, Xamarin has been a fairly quick and easy tool to learn once it's running.
The sample apps help for getting going despite some errors preventing things from working straight out of the box. The UI for android is still XAML based, but the UI logic can be written in C-sharp well enough for any basic design. Given that I'm not a huge Java or eclipse fan, this is really quite useful to me.
Running Android app builds on device instead of emulator is definitely a wise idea to save time given the huge time it takes to emulate.
The Tasky app serves as a great sample app to quickly get up to speed with how lists are handled compared with UITableViews in iOS.
Given that Android has many versions, with many devices with many resolutions, user interface design remains a time consuming task for the developer. So it should be clear to all stakeholders that Xamarin cannot address this. If you brake the dev time down (UI/UX, Business logic, Data Model). You can save time on the business logic and Data model, I would give generally speaking 50% of the time to UI/UX.

So if you were to dev the 3 apps with one code base for business logic and the data model you're saving 1/3 of your development time. This is of course subjective to the app your developing, but in any case you're going to save time. Just not as much as you might think on first impression.

Further Information and links:

- Xamarin's Developer Home page
http://docs.xamarin.com

- Xamarin / Mono touch tagged Stackoverflow questions:
http://stackoverflow.com/questions/tagged/monodroid+or+monotouch+or+xamarin?sort=active

- Xamarin for Android Docs
http://androidapi.xamarin.com

- Xamarin Components Store
http://components.xamarin.com

- Xamarin Forums
http://forums.xamarin.com

- Windows Phone Developer Home
https://dev.windowsphone.com/en-us

~Dave van Dugteren

Tuesday, January 15, 2013

Peoplebank iPhone App

As Declared on Twitter, we at www.alivemobile.com have designed and developed a Job Search tool for Peoplebank.

A tool for folks in the IT industry allowing them to Save Job searches, receive Job Push Notifications, Email notifications, apply for jobs from the app, autofill their application via Linkedin, and a bunch of other cool features that other apps like Seek don't yet do.