Want to start developing iOS apps?
Here is an interesting Quick Startup Guide from Apple: Start Developing iOS Apps Today. A must read if you are just starting your endeavour.
Post a Comment |
Here is an interesting Quick Startup Guide from Apple: Start Developing iOS Apps Today. A must read if you are just starting your endeavour.
Here is an interesting article from Kent Nguyen on what it takes to make or build an iPhone app. Not an easy task.
Today I want to share this really interesting and well done blog post from Mike Rungle about making nice looking rounded rectangles in your iOS application interfaces: Making Round Rectangle Look Great. Mike's works is very impressive and I love everything he does graphically speaking. I wish I could be as good as this guy!
I just read the Cocoanetics crash course on GitHub's Fork, Pull requests. For beginners, if you want to get an idea what GitHub is all about, head to Cocoanetics blog post.
Being an indie iOS developer means a lot. Some could say we are our own boss and this is great. Others would say that we get all the benefits for our app sales (minus 30% for Apple). I would say that being an indie means everything is hard work, nothing is a given. Some others think the same. See You Guys Are Millionaires Right?
Friday, September 23, 2011 at 20:47 | tagged
beginners,
development,
libraries 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.
How often do you get this question: I have an idea for creating an iOS application but I don't know where to start. Easy: from the end. Here is an excellent small article on starting to build an application. http://mur.mu.rs/?p=327
Here is a little story I want to share with you. This is my story. A story about learning the hard way as an indie iOS developer. As you may already know, I am the developer of an iOS app called "Ultimate Password Manager" (UPM for short). This was my first iOS app that came out on june, 9th of 2009.
A few users upgrading to UPM 2.3 started to send me reports of losing their passwords. The problem was critical: starting the application after the upgrade could corrupt the password database. What makes the matter worst for me is the fact that a vast majority of my users continue to enjoy the application after the upgrade but at some point can face the same issue. So the problem could not be in the upgrade code but somewhere else.
For an application like this, this was the worst thing that could happen. Users can spend quite some time entering data into the application, passwords and related informations like web site, description, etc. Losing all of this was bad. On top of all this, I can only imagine how a user feels when he needs to get a password for a rarely used web site only to find out that the application lost all the data.
Before getting bad user reviews in the App Store, I started to analyze crash reports. I found out that for some reasons, on some devices, the application safe's UIViewController was presented before the safe database was loaded into memory. At this point, the user saw an empty safe. After the initial shock, the next thing the user was doing was to quit the app then re open it to see if the data was there. The thing is, when UPM quits, it must save the database. As you can expect, when the initialization wasn't done properly, upon being quit or put in background, an empty database (nil) was being saved. First lesson here: I should have put initialization check in my code like: is the database logically and correctly loaded into memory? If yes, then this is ok and continue.
Now the question is: was this endeavor to optimize application launch time really worth it? Is 7 seconds really better than 10 seconds? In retrospect, the answer is no because potential buyers of the application looking at the users' review, won't trust my app.
In the next few weeks following this disaster, I was able to remove the use of NSOperation calls for the database loading. But the problem wasn't really fixed from a user point of view. The reason is very simple: many users who upgraded to the later version which includes the fix will experience the database corruption issue. Why? Remember that if the database isn't loaded correctly, what is being saved while the application quits is corrupted. What if the user won't use the app for months and a new release comes out? The upgrade, open the app to try out some of the new features only to find out that the password safe is empty!! When this user in this scenario contacts me for support he will think the new application release made him lose all of its passwords! For the user, the effect is the same, whatever version he used, he lost confidence in the app. But for me, the developer, this becomes a long lasting issue that will generate confusion and frustration in the application's reviews for quite a few versions ahead. This is a long lasting nightmare from which I can't get out simply by waking up.
In its current form, UPM 3.1 now doesn't load the database while starting up but only after the user authenticate with the application by entering a master password. This way, my app starts faster while being more secure.
My lessons to all this are:
Tuesday, August 2, 2011 at 21:16 | tagged
beginners Here is an important subject for iOS developers who are starting their endeavor. What hardware should you use for developing and testing?
Read the complete answer on this excellent blog post by @cocoanetics
http://www.cocoanetics.com/2011/08/hardware-for-developing-and-testing/
Wednesday, June 8, 2011 at 7:00 | tagged
beginners,
howto,
subversion,
tips So you just submitted your app to the Apple's review team. Before starting work on the next release of your app, you should create a tag in your subversion repository to keep a marker of the sources for the submitted release. Simple to do:
svn copy file:///Users/username/Subversion/UPM/trunk/uPasswords file:///Users/username/Subversion/UPM/tags/3.1.0.357 -m "tagging UPM Version 3.1.0.357"
That is all. Now, in Xcode's Organizer, click the Repository tab then expand the tags node. You'll get all the tags you defined.