Search
Goodies

Social Networks
Designs I Like

Entries in development (53)

Thursday
Jul262012

Web Based iOS app development tools

Anyone using web based application creation tools like http://www.radicalflow.com ? I would be interested to know more and hear about your experience. Thanks.

Wednesday
Jun272012

Thoughts about application design 

I think of application design when I'm drawing screens. I feel I design an application when I'm thinking about what will be part of the Model, what will be part of the Controller and what Views will be required in order to display things to the users. I'm designing an application when I start to list the open source modules and framework that will be needed in order to save development time. I'm designing an application when I start to look for application icons. I'm building an iPhone application when I'm building the list of features that will be part of the initial release and all the subsequent releases. Yes, I feel that I'm into something when and I'm looking back into previous WWDC videos I order to remember how to write code.

Friday
Sep232011

Custom UI Components Database

Looming to kick start your iOS development project with ready made components? Maybe you could look at Cocoa Controls. You'll find quite a few iOS custom controls that you can use for your own apps.

Saturday
Mar192011

Fixing "missing architecture" errors in Xcode's Organizer

Tip of the day: you want to build a new version of your application for submission to iTunes Connect. After archiving your application in Xcode 4 and hitting the Validate button you get the following error in Organizer: executable is missing a required architecture. What could be the cause?

The reason is simple, you are validating an archive which is missing a required executable code for armv6 processor? How could that be. If you don't pay attention at your Scheme definitions, we end up trying to compile your application for the simulator. In that case, submitting this archived application to the App Store will result in this warning. Make sure that any scheme you use in Xcode for iTunes submission refer to the physical device.

Saturday
Mar122011

Kick start your iOS development

How many times I've got this question: "What do you need to get started in iOS apps development?". Well, this blog post will try to give a broad answer in a "point form" style.

First, these requirement categories are:

  • Personal DNA
  • Personal skills
  • Hardware
  • Apple tools and services
  • Training
  • Software tools
  • Services
  • Other tips
Personal DNA
  • Eager to learn
  • Willing to sacrifice
  • Not afraid to fail
  • Passionate
Personal skills
  • Being familiar with a programming language is a big plus.
  • Knowledge of computer data structures is also a big plus.
  • Knowledge of web services could be a plus depending of your ideas and projects.
  • Design awareness is a must. If you don't care about user interface design and beautiful software, here is a tip: go develop for Android. And I'm not joking. 
  • Healthy network of people (you'll need some help at some point, or beta testers and those who will help you get the word out about your fantastic application.)
  • Experience with graphic design tools (like Pixelmator, Photoshop) could help you create mockups or user interface graphical elements.
  • Know the competition, spend a lot of time surfing the App Store to get a feeling of the trends, your competition, etc.
Hardware
  • Any Intel-based Mac (beware if you buy a used one, make sure it is powered buy an Intel processor) with at least 3 gigs of ram, lot of disk space. Could be a Mac mini by the way. Very nice machine for dev. 
  • A big screen (Xcode love to spread itself), specially Xcode 4. 
  • At least one development device like an iPhone or iPod touch.
Apple's tools and services
  • Get into Apple's Developer Program for iOS (if you want to publish on the App Store this is mandatory, otherwise, just to play with iOS development, it isn't). 
  • Submit your banking information to Apple for electronic payments.
  • Download Xcode and install on your machine it is free if you are a registered developer. If you want to try it out without being a registered developer, you can get it on the Mac App Store for 4.99$.
Training
  • Look for Jeff Lamarche's books with Google and buy them all.
  • Look for podcasts on iTunes, quite a few are very well done and educating. If you are a registered developer, you can download past Apple's WWDC conference videos from iTunes U. 
  • Look for StandFord University's courseware on iTunes U. (iTunes U link)
Software tools
  • To Do list manager like Remember The Milk on the web (also includes iPhone app). Very good idea to have a tool like this to keep track of things to do. 
  • Prototyping tools like Apple's Keynote or iMockups HD for iPad, a great prototyping tool but another one is Blueprint for iPad from www.groosoft.com, THE best prototyping tool for iOS apps.
  • LittleSnapper from RealMacSoftware to get snap shots of your app.
  • ScreenFlow from Telestream.net to build nice video screencast of your app.
  • Pixelmator from www.pixelmator.com to build graphical elements of the app user interface.
  • Sketch can also be used to build UI elements if you like to work in vector-based mode.
  • Look on the Mac App Store for software like iConify or iOS Icons (to build versions of required icons for all resolution), Status Barred (to remove status bar from screen shot of your app as required by Apple). 
iPhone Apps
Here are my iOS apps that I'm using on the go that helps me as an iOS developer. 
  • Apple's iTunes Connect Mobile: to get access to sales report from Apple's iTunes connect. Not very well done if you ask me. You must be a member of the iOS Developer Program in order to download this app. You won't find it on the public App Store.
  • Remember The Milk: manage your tasks on the go. Sync with the web service is a paid service at www.rememberthemilk.com.
  • Ego: provides a quick look at statistics on twitter followers, RSS feed subscribers.
  • Analytics: complete access to Google's Analytics services that you can link to an application's promotion web site.
  • Analytix: kind of the same as Analytics but with a different twist, provides a yesterday /  today comparison of visitors count, page views count.
  • Statistics: provides access on the go to any WordPress's web site analytics. 
  • Stat Fever: great access to a FeedBurner's analytics.
  • MailChimp: if you use this service to send mail to your users, provides analytics access on campaigns. 
  • TestFlight (webclip): get access from your device to a new build of beta software from other devs or your own adhoc builds. A complete review of this service: Building iPhone Apps: TestFlightApp: a complete review
  • Swish: if you design yourself your apps, spend some times on Dribbble web site to have a look of graphic designers best work. You'll get inspiration there. Why not do that on the go!
  • appTrends: the only mobile client to the very complete sales analytics www.appfigures.com
  • PositionApp: get a feel of how your apps are doing in iTunes' ranking. Not always accurate as this service lag quite a long time behind actual ranking (AppFigures is better at this!).
Services
Once your apps are ready for sale on the App Store, some other tools and services you'll need. 
  • To promote your app, you need a web presence and for that you need a domain name hosting service like www.godaddy.com
  • To actually build a web presence, you need a web hosting service like www.fatcow.com.
  • If you don't use a web publishing platform like WordPress, then go with basic web editing tool like Apple's iWeb or RapidWeaver.
  • You may use the hosting company's email service to get email addresses for your user community to get in touch with you or simply go with gmail.com.
  • File hosting for some of blog posts containing files to download: some on MobileMe's iDisk or www.dropbox.com
  • Apple's Keynote for user interface prototyping and many user interface elements.
  • Google Analytics for my blog statistics.
  • Google Feedsburner to manage the blog's RSS feed and stats.
  • To get a beautiful view of a web site analytics, try www.gosquared.com.
  • Dribbble graphic designers community. Wow. This is incredible the quality of designs that you can find there.
  • www.appfigures.com will take care of processing iTunes Connect sales reports and provide nice graphics on sales and comment management. See my review of this service here: Building iPhone Apps: Comparing appFigures and AppAnnie - Updated
  • www.mailchimp.com is a great service to help create email campaign for marketing purposes. Very well done service.
  • www.observerapp.com for a better looking view of a web site using Google Analytics.
  • www.testflightapp.com to beta test your applications with a lot of people. You can read my complete review of this great service: TestFlightApp: a complete review and also Conclusions on my first open beta under TestFlightService.
Other tips
If you know about great resources for starters, please share with others in the comment section. 

Friday
Jan142011

Build, Test, Fix, Build, Test, Fix, etc.

As you can see, I do a lot of testing of my application in development. My goal is to create a new adhoc build (using Build & Archive) in the morning or at night so I can test the app while commuting in the metro while going to work. Many weeks passes between releases. As an indie iOS dev, I don't have all the time I'd like to spend on the computer.

I keep all previous build of the app so I can re-install one if I want to check for a bug fix for example.

Friday
Jan142011

Two nice initiatives from other iOS devs

Recently, I came across two very nice and useful initiatives from two other iOS developers.

The first one comes from Mike Rundle. This guy is behind: http://www.flyosity.com. He is a software developer and interface designer. His web site is so nice and is quite fun to follow on twitter. This guy decided to create a very unique web site http://designthencode.com. The idea is very simple but sooo useful: how to turn from nice photoshopped user interfaces into the real thing: a running iOS apps. The first tutorial is still to come and I'm very anxious to have a look at it.


The second initiative comes from @robotcat (http://robocatapps.com), the guys behind the very nice weather app called Outside. They put up a blog in order to expose their tidbits about iOS app development. Their latest blog posts are about the birth of a new app called Thermo (very nice by the way) and also the latest version of Outside, version 1.2. Look for more at http://robokitten.tumblr.com/

Saturday
Nov272010

A day in the life of an indie iOS dev

So, what is like to be an indie iOS developer on a saturday morning? 

10:00 AM. Read my emails, look at my www.appfigures.com today's report. Nothing very exciting. My thanksgiving sale promotion did not really push sales. That was expected. I give a quick look to the Reviews section to see if I've got any more App Store reviews. Nope. Nothing. While being there, I take a few minutes to update my account settings in order to send the sales reports to a new email address.

10:15 AM. Next, I'm thinking of the next blog post. This could be interesting to others if I wrote a post about what is like to be an iOS indie devs on saturday morning. 

10:20 AM. Looking at my iPhone, I have 1 day left to my developer provisioning profile. So I start Safari on my Mac and go to developer.apple.com to renew my profile. Found out that my old iPod touch is still linked but I lost it (!). So I remove it and renew my provisioning profile that I download on my computer. I'll install it later.
10:35 AM. Now I head to www.cocoapedia.org to complete my registration on the wiki. Takes five minutes. 

10:40 AM. Now in Xcode to install the new provisioning profile and build a new test version of Ultimate Password Manager 3.0. Test that the application starts correctly. Yep.

11:15 AM. Next, work a bit on application X user interface in Keynote. A few teaks are needed on the application default user interface. This thing is starting to look good. 

11:30 AM. Now, I'm trying to complete my www.apptank.com registration. Found out the verification email was in my spam folder on gmail. Spent a few moments to complete my portfolio there. The web site has a few quirks. Some potential but I think I prefer www.theymakeapps.com. 15 minutes on that.

11:32 AM. Now visit www.rememberthemilk.com to updates my to-dos. 
11:40 AM. I realize that I need to test my new indexed table on the password safe in Ultimate Password Manager. Setup the test.  Seems to work fine. That was fast. 

11:45 AM. Went on www.dropbox.com/developers to see any new announcements on their web site. Nothing.
It is now 11:47 AM. Time for a break.

2:28 PM. Back to work. After careful examination, I will remove some NSOperation from application's delegate methods to be sure certain data structures are loaded at the right time, in sequence. Compile a new adhoc release. Installed on my dev device. Testing.

3:15 PM. Time for another brake. Some other things to do.
5:00 PM. Some other touches to user interface prototype for application X. I had to fin d the textured iPad background to use in this application.

5:19 PM. I'm pretty much done for today. 

Friday
Nov192010

Writing iOS apps with high level frameworks and languages

Recently, a friend of mine asked me to test one of his iOS app he was working on for a while. A very simple app that is used to fill a very specific need. He wanted my feedback on the app (stability, user interface, wording, etc.). So I installed the whole thing on my iPhone 3GS and gave it a serious look.

After a while, I noticed this app was doing weird things visually:

  • animation of complete views that I was not aware we're available in UIKit;
  • text fields that we're a bit strange looking;
  • navigation bar at the top was moving up and down as I was scrolling the whole table view (that one was the most surprising: the navigation bar never scroll with a table's content!);

Once I was done with my tests, I decided to FaceTime this guy and give him my impressions. They we're mostly positive and I think I've helped him get a few things corrected. When I was showing the navigation bar moving with the table's content, he was not surprised at all. He said: "oh yeah, this is expected as the whole view is a UIWebView with complete HTML/CSS implementation of basic iOS interface elements". What?

This developer is actually using a framework called jQTouch. More information is available here: http://jqtouch.com/. Honestly, I felt a bit deceived. I felt that way because I thought this developer was trying to have it easy! Why not develop in full Objective-C? Why not a native application? The debate was open!

This is not the first time these questions are asked. And this won't be the last time too. After my initial reaction, I changed my stance. I tried to understand his motive for using jQTouch. I think they are reasonable. He wanted to write his first iOS app that is easy with tools that gives fast results. On top of that, the developer is already fluent with web programming languages. So, He went with what he was knowing best. How about the application quality then?

On the application quality, I can see there is a bit of a difference because I'm a developer myself. But, what about the normal user? They don't really care as soon as the app is usable and produce the desired result. I think this is fine. But, the same day, I had a chance to try this application: Ars Technica Reader for iPad (link to the article presenting the app and the behind the scene view!).


They developed this application with HTML5, CSS and JavaScript. They wrapped this stuff in an application wrapper called PhoneGap. The result? Great on paper. Very Bad on the iPad actually. Sooooo bad. Other users seems to agree too.
In this case, using non native language to develop an iOS app is a complete failure to seize an big opportunity. The app is so slow on a device that is known to be so fast. I wonder why this app could even be developed until the end without being scraped and rewrote in native language.

What does this story boils down to?

  1. A developer can use high level framework or language to write an application, a very basic one. And this is ok!
  2. A developer with very challenging application should avoid using these high level languages. They produce portable garbage that can easily go from iOS to Android but this only serves the developer, not the user. 
  3. I understand why Apple was so hesitant to relax their approval rules. Now, we see in action what garbage these tools are capable of. 
  4. HTML5/CSS/JavaScript seems to get a lot of press these days. But in fact, are they the path of future app development on mobile device? I don't think so. They don't produce optimized results. They are too slow. Yes they produce outstanding things from a browser perspective but that is it! Mobile platform are much more than only webkit-based browsers. 
  5. The App Store is bloated with natively written applications that are very badly designed too. This is not my point. My point is having too much of an emphasis on the tools used to write the app, we loose focus on the objective: writing app that are useful, easy to use and enjoyable. Just like the iPhone.
My two cents worth opinion. What is your opinion?

Thursday
Nov042010

In review... at long last!

Ultimate Password Manager 2.3, is the result of a summer long of hard work. After a buggy road when iOS4 came out for which I had to release a interim build of the application (2.2.1.199), I was hard at work on this last release to support iOS 3.1.

Having completed the application testing in september, I was met with the CCATS classification required by the US Government for products using encryption. This added up nearly two more months of delay because I had to read, understand and apply for a CCATS classification. Following the classification response, I could now submit my new version to Apple.

Today, after more than a week in Export compliance review, the application is now in review. I only hope that the review process won't take too long. Since my last update, many of my users are confronted with bugs that I know are now fixed in this release so I'm eager to let the cat out of the bag.