Tapworthy iOS Apps Aren't Developed Overnight
Just when I thought I had a somewhat decent grasp on developing and deploying iOS apps Apple came out with the iPad and threw a whole new element in the mix when it comes to developing. Thankfully, the iPad will allow iPhone apps to run on the device, but the user experience is definitely sub-par. So what is the best approach to providing an native iPhone app and a native iPad app? The first option is to duplicate your existing iPhone app code base and modify all your views and some of the controllers to take advantage of the features in the 3.2 SDK. The problem with that is the massive DUPLICATION of code and to be honest it seems quite lazy. I have seen lots of examples where developers use the idiom check for which device is being used, as well as, runtime checks for selectors in order to leverage the correct methods/classes for the given device. While this is certainly a better approach then having two separate code bases with 90% of the same code you now have code that is sprinkled/littered with if/else checks. Unfortunately, you are once again stuck with code that will be maintainable for long. After reading the chapter on universal apps from the upcoming book from Pragmatic Programmers, iPad Programming, I found a much better design pattern of splitting out the app into Shared, iPhone and iPad resources, classes and delegates.
Comments [0]
From the ashes of itself, according to legend, a Phoenix will be reborn to live again. In my case this almost has a literal truth. Last week I started my new job at Phoenix Communications as a Software Development Engineer. My primary responsibility will be creating iPhone/iPad apps for business integration, as well as, consumer apps which I can't go into detail right now due to NDA...but I can say that it is going to be challenging and exciting. Most of my previous work experience has been with fairly large companies or academic institutions. While, I learned a lot working in those settings I definitely feel that I work BEST when I am involved with a smaller team and even smaller bureaucracy. Too many ideas and innovations are stifled because of "red tape" or this approval or that approval needs to be signed off on by five different levels of management. There are usually WAY too many meetings and not enough work getting done.
Comments [0]
Back in May Steve Jobs got into a wee bit of email confrontation with Ryan Tate over the finer points of whether or not Apple was still a revolutionary company based upon their recent actions of going after the Gawker blogger/journalist/thief/revolutionary/martyr/whatever for publishing and printing information on the yet release iPhone 4. One of the most circulated quotes from sed email exchange was "freedom from porn". Even as a big Apple supporter that I am I had to laugh a little. I do think Steve and his band of merry men and women are making the right business decisions I thought that one particular reasoning was somewhat of a copout used by politicians who want to guilt voters into believing in some draconian policy. That was until I was watching my 3 year old niece play a Snow White puzzle game on my brother-in-law's Android Incredible. The app was free with ad support.
Comments [2]
The past three months I have been working on an iPhone app for a local photographer John Childress. Like most great iPhone apps, the idea that John had dealt with a concept that would:
Comments [1]
I was working on incorporating an "sms ballon" type view for a client and while doing some research on the best, and different, ways to implement the functionality I came across a great tutorial, but thought it could be cleaned up just a little bit which should make your FPS increase and I fixed some memory leaks. I wasn't able to run any performance tests on it so I would welcome ANY feedback how to improve the code.
Comments [0]
One of the greatest new features that is included in iOS4 is the power that developers have to deliver local notifications. At the time that the first beta was released in April I was writing specs/requirements and project timeline for a potential app which would have ended up taking me about 5 months to develop. A large part of the project schedule dealt with having to setup/maintain user reminder preferences...the number of reminders, frequency of each one, time zones, etc. I tried to think of ever solution that I could that didn't involve the server component, but there really wasn't any other way.
UILocationNotification to the rescue. After looking over the API docs, Apple had provided exactly what I needed and I was able to cut out 2.5 months from the project schedule because of it.
I was able to create an POC app using UILocationNotifications in literally 5 minutes. It involved two easy steps:
There are two possible end results. The first being that the event is fired off while the app is running in which case you will not see anything. Hence, why I added the NSLog to the didReceiveLocationNotification method. The second is if you close the app before the notification has fired and in that case you will receive the alert box with your message.
Note: This was compiled with iOS4 GM and tested on iPhone 3G/3GS
Comments [1]
Comments [0]
This Friday my wife is graduating from Christian Brothers University with her MBA. It has been a long road over these past few years, but she emerged victorious. The next chapter in her life is to move her current consulting career back to corporate America and it is interesting to see that process again...and when I say interesting I mean SAD and PATHETIC. It amazes me just how unusable these online job applications are. First she is asked to create an account on CompanyXYZ's site as if it is some online community that she will be frequenting often and sharing recipes with friends. Second she is asked for her personal meta information, Name, Address, etc. and in some cases her SSN (which no one should ever give unless they are given a job offer and the company needs a background check) and then she has to enter in all of her previous employment, education and then FINALLY upload her resume. Some want the resume plain text, some require it in PDF or DOC. Nothing is ever consistant. All of this is redundant and unnecessary. You want someone's contact information, it is in the resume. You want someone's previous work history, it is in the resume. You want someone's qualifications and awards, IT IS IN THE RESUME. Why does an applicant HAVE to give you this information again?!
Comments [1]
One of the biggest gripes that I have with working with the FBConnect iPhone SDK, and really the Facebook API, in general was having to deal with a very inefficient REST implementation. Callback after callback, protocol after protocol, major bugs (that have yet to be fixed as far as I know), and my biggest issue is the nasty user experience having to login a user. I was very excited to hear when last month Facebook announced they had came out with a new API that would allow great security, ease and flexibility. The pains of having to go through currently working functionality and refactor the code to accommodate the new features wasn't too much of a problem for me because it would mean a reduced code set on my part and I would be able to get rid of the Facebook Connect SDK. I set out to test my theories and functionality via a quick web app. No problems. Then I proceeded over to my native iPhone app. EraseUrX v2.0. The new authentication mechanism utilized in Open Graph is OAuth2.0. While many of the headaches and complexities of using OAuth are addressed and the documentation for using it in a mobile web app are well documented with Facebook they TOTALLY dropped the ball on providing any direction on using it with a native iPhone app and they don't provide an updated SDK.
Comments [18]
Comments [0]