Sponsors

 

Wednesday, September 30, 2009

Favorite Time-Wasting Game: Fieldrunners!


I've meant to write about this tower-defence game... but I guess I have been too busy playing it! The graphics for it are really spiffy, the basic game play is simple to pick up, but as the game progresses it gets brutally challenging!

Basically, you have to stop these little guys, tanks, robots, planes and helicopters from getting from one side of the screen safely to the other side. You build "towers" that deter and shoot at the field runners trying to cross the field (there are 3 different maps at this time).

Certain units are tougher than others, and, as the game goes on, each of the different units becomes progressively tougher. Units have to travel around towers that block them. Except for the copters that is, which can fly in a straight line from one side of the screen to the other. These guys are the bane of Fieldrunners fans!

You have 20 lives. Use up the 20, and the game is over. Great game! They also have a great web site... http://fieldrunners.com/, and, the game will soon be available for the PSP.

About the screen shot:
Yes, it is true, the score in the screen shot above (1,012,075) is accurate and is my score. No cheating was involved. And it is my best score. Mear moments after this screen shot was taken, due to the imfamous copters, the game was over!

Today In iPhone - Now a Favorite Podcast




I was browsing podcasts in iTunes with the subject of iPhone and I subscribed to this podcast.
I subscribed, but I didn't bother listening to it for awhile. Now that I have listened to a couple of episode, I've gotta say that of all the podcasts on the iPhone, I think this one is the best.
I like the user feedback via the voicemail, the news, the show notes/links, etc. I think it is pretty thorough. I've added RSS feed links to the latest podcasts on the right-hand side of the page of this blog.
Two links to get to the the show links, etc. are as follows:

Wednesday, August 26, 2009

Integrated Social Media Tool For the iPhone?

More and more, I'm getting closer to finishing my first iPhone app, which, hopefully, will find its way into the App Store. As I get more and more adept at using the iPhone SDK, I'm beginning to wonder what other apps I could build. The two current apps I'm building I'm keeping it secret what they're for, but there is one idea I am going to put out there before I've written a line of code...

What About an Integrated Social Media Tool For the iPhone?
Currently there is a Facebook app, various Twitter apps, etc.,etc.,etc! Robert Scoble spends allot of time talking about trying to integrate all his data, to integrate all his feeds, etc.

If this could be done on the iPhone, how would you do it? I mean, we don't want some kludgy monstrosity here!

Would the tool just be a way of dispersing our own data quickly to multiple channels? Or would it also include a way of keeping track of all your favorite feeds possibly in real-time?

Give me some feedback people! I'm keen to hear what you have to say! And Robert, if you read this, tell me, what would your social media dream app look like running on the iPhone?

Tuesday, August 11, 2009

Clarification on beginUpdates and endUpdates methods

As I was doing some studying regarding different aspects of working with a UITableView, I came across some information about beginUpdates and endUpdates, which, I hope to share with you to clarify how these guys actually work!

The SDK gives you several methods (of your table view) you can call to animate the addition and deletion of rows/sections on your table:

Animating the adding of a row:
-(void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation *)animation;

Deleting of a row:
-(void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation *)animation;

Adding a section:
-(void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation *)animation;

Deleting a section:
-(void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation *)animation;

Calling a combination of these to say add a row in one spot and delete another row in another spot will generate two different animations in the order that you specified them.

To make things look better, there is beginUpdates and endUpdates. The beginUpdates and endUpdates is basically like a two-phased commit you do on a database... only for animation! If you wrap your sequence of adds/deletes with these guys it will animate the deletions and inserts all as one orchestrated animation! Giving you that professional polished look!

I found some interesting table view code you may want to look at out on the web that uses allot of this. NOTE: I haven't actually tested this code yet so I don't know how well it will actually work.

Monday, August 10, 2009

Some Sort of Auto-Caching of Views


In the iPhone App that I am currently working on, I've got a nice (i) button in the lower right hand corner of each regular view of my application. Tapping on that button causes an info screen to flip into view as one might expect for an App. Basically providing a splash screen including showing the user the current version of the app and a link to the app's web site.

The crazy thing is, that when you tap on the button for the first time during the run of the app (at least in most cases), there is a slight delay and the view appears: BAM! And the nice flip animation either only partially appears or does not appear at all. If it does appear, it kind of shudders in an unprofessional way.

This problem isn't a deal-breaker per-say. I mean, the info screen does come up. No exceptions are generated. And, if you tap on an info button after that during the same run, the animation shows up just fine. It just doesn't have that consistent professional look that I think it should have.

My best guess is that there is some caching of view data, or view controller data going on and something asyncronous going on, so, that it brings up the view the first time before the animation gets a chance to completely run. Of course it is a guess.

Right now, I have separate code in each view controller that happens when the user taps the (i) info button that instantiates an object from the infoViewController class, sets the animation, and calls the proper method to bring up a modal view.

I am thinking now of doing this in my root view controller (with the exception of calling the method to bring it up, assign it to a property, and just call the modal view method whenever I need to. I'm abit lazy, so we shall see if I get to it. My guess is that doing it would make sure that when the user taps on the (i) button the first time and every time afterwards, the info screen will always animate nicely.


Have you run into anything like this?

Thursday, August 6, 2009

Pause/Play clicker on iPhone Headset Wire


You probably already know this, but I share it anyways...
Have you ever been listening to your tunes on your iPhone through the ear buds that came with the phone, and you squeezed the little clicker on the wire to pause the playing of your music, and the music continued playing merrily along?

You clicked it again, and still it played on?

I discovered today, that it is possible to have your headset plugged in far enough to hear your music just fine, but not far enough for the "clicker" to work.

Solution? Just push the plug in a little farther and try again!

Tuesday, July 28, 2009

Comment Posting on iPhone Obsessed Fixed Up

Today I discovered that I had a form of comment moderation turned on on the blog without knowing it. And, as a result, I never went to the moderation page to check out posted comments, and no comments anyone posted showed up on the blog! Bummer!

I now have moderated all the previous posts.

I tweeked the settings today and that should not be a problem anymore. Please feel free to comment on my posts. Ask questions, and I'll see if I can answer them.

Monday, July 27, 2009

Code Journal: Edit Mode on Table Views


I mentioned how my code worked for Edit mode on a table view in my iPhone app using the iPhone SDK 2.0 but then stopped working when I upgraded to 3.0. And I mentioned that after looking into things, it was amazing that my code worked at all the way I had it. Well, now I am going to explain the details.

It all has to do with the tableview methods beginUpdates and endUpdates. Based on the code that I originally used to base my code on, it appeared that beginUpdates was something you called when you entered the edit mode, and endUpdates was something you called when you exited edit mode. Nothing could be further from the truth!

Basically, these methods have something to do with animation of the cells on the table view. You want to do the beginUpdates, move into the table view's edit mode then call the endUpdates right away. Then you want to do the same thing when exit the table view's edit mode.

Below is a screen shot where I am checking the status of an Edit button on my view to toggle the edit mode on my table view:

You will notice how my beginUpdates and endUpdates lines are before and after each setEditing: animated: method.

Hope this helps

Friday, July 10, 2009

Code Journal

I have been back to successfully doing builds of my app on the device for a couple weeks now. One thing I ran into since upgrading to the iPhone 3.0 SDK is that my code which worked before to delete rows in a table view no longer worked.

Last night, after watching a video on table views from the last WWDC, I figured out what I was doing wrong. The issue wasn't really why it stopped working in 3.0, the real issue is how it had ever worked at all in 2.0!

I made some changes to my delete code last night, and it is working once again.
I'll share what I learned in another post later on.

Monday, June 15, 2009

Another iPhone Obsessed Person

Are you obsessed with the iPhone? Julie Blair is. At least in regards to taking pictures with her iPhone.


Check out her post here.

Friday, May 15, 2009

A Look at sketchinz

Sketchinz (http://www.sketchinz.com/), is a nifty little program for the iPhone or iPod Touch that allows you to draw pictures "free-hand." I drew the picture of the rabbit on the left.

Before you think that I'm such a great artist, there is an option to pull up a photo from your photo album that you can essentially trace (which is what I did).

Instead of using your finger to draw as you might assume (as I did), you tilt the phone to move this cross-hair like cursor around on the screen. You pick the current color to draw in and the current brush. Want to move somewhere else without drawing a line? Just pick the brush at the end (which is basically no brush)!

The colors are limited. You only have one hour to draw a picture (which sounds like a lot but if you are really trying to do something it goes by in a flash).

You can save your pictures, but it doesn't save them to your photo album. You can upload your creations to their server so others can enjoy them. They seem to have some sort of drawing contest always going which is cool.

One neat thing it can do is re-draw the picture just like you did it. It sort of has an animated quality to it.

It is a bit limiting but I still think it's worth the price. I find it fun to play with. Price when I got it: $1.99

Tuesday, April 7, 2009

Trying to Feed the Beast

Someone has created a Wordpress blog under the domain http://iphoneobsessed.com/.

They have like one actual new entry in their blog (started about 3 months ago), and the initial post that Wordpress puts in a new blog is still there! I think the owner's will find out that feeding the beast is more about actually finding the time to write stuff and post it on their blog.

BTW, this new site is not my site, and the blog you have before you right now is the original iPhone Obsessed blog. I guess I'm possessive obsessive compulsive!

Thursday, March 19, 2009

iPhone OS 3.0 - Some Thoughts on This Cool Announcement


OS Version 3.0
When I heard that Apple was going to announce some new features in version 3.0 of the iPhone OS, I had some expectations of possibilities like cut and paste. But really, I was blown away by all the goodies that Apple announced Tuesday, as well as by discoveries folks have been making when digging into the new Beta that is now available to developers.
Consumer: Cut and Paste
This functionality has been on other smart phones for a long time. People have complained that it wasn't in version 1.0 of the phone. Well, it's here now. Or will be once 3.0 is moved into production down the road. Honestly, I can understand why this wasn't in 1.0 though, Apple's touch interface is completely different than the other smart phones out there and figuring out a elegant solution that works without junking up the UI is no little thing. I am looking forward to using this feature.
Consumer: New Search Features
Nifty way to search your whole iPhone: Spotlight Searching will be in 3.0 as well as searching in email. I actually could have used the email search a couple days ago!
Linking With External Devices
How cool is it that a glucose meter can link in with an iPhone and feed data into a Diabetes app's database (screenshot below). Hmmm. Think the the possibilities of other devices that could do the same thing... Barcode readers, mini weather stations, my mind is going blank on this right now but I'm sure there are allot of imaginative uses here!


Stuff for the iPhone Developer
In the near-term, I think the iPhone developer really made out like a bandit this release. Apple has put in allot of new functionality in that will give developers allot of abilities that they've been asking for. Some of the features that I am looking forward to using as a developer are:
  • The ability to send email without the user leaving my app.
  • The push ability. Where my user can get notifications without my app being actually open.
  • The internal buy functionality that lets users buy stuff from within the app instead of having to go to the App store.

Below, the Sims game demoed allows you to buy add-ons for the game directly in the game:

Other nifty stuff includes being able to use blue tooth with other iPhone users close by. This could be used for game parties, exchanging business cards, exchanging app info. The imagination runs wild!
Discovered: Tethering
Someone has found tethering in 3.0 (see screenshot below). Yes you could use your iPhone as gateway to the internet for your laptop while on the road. Since phone companies sell cards to do this over cellular networks and charge for bandwidth, and since AT&T gives unlimited data bandwidth for iPhone users, I don't think Apple will just flip the switch on this feature. More likely, they will work it out as a phone company service that you can turn on (for a fee). Just my guess anyway.

I hear that there are hundreds of new features added for developers to take advantage of. I think that though these are not directly consumer features, that down the road they will end up empowering developers to come up with applications that make consumers more and more happy.

Tuesday, February 17, 2009

Creating a Working Nib File With Interface Builder

Interface builder has given me fits. I would do what I think I had to do and BOOM! it would blow up. Other times I would try to do what I thought I should do and it wouldn't let me do it! Well this post is going to be a mini tutorial on how to throw together nib files that actually work with your iPhone project!

Let's stop for a moment and talk about Interface Builder. This program comes with the iPhone SDK. It can be launched from XCode when you double click on a nib (xib) file in your project, or, it can be launched by clicking on a xib file, or by starting it stand-alone. I usually use it from XCode since this is where I'm doing most of my work.

What Exactly is Interface Builder?
This program has been around awhile and is used to design user interfaces. It allows developers/designers to layout their user interfaces in a drag-and-drop visual format instead of having to construct the whole interface using code. This can greatly speed up the development process, and, it can make it possible for non-developers who are designers to be able to do their work. Its been used to design window layouts for Mac applications for quite some time. Apple engineers have now made it possible to design iPhone GUIs on it as well!

Steps... Although you don't have to do things precisely the way I am, I recommend you follow these steps in the same order:


  • Before creating your nib file in Interface Builder, create the View Controller sub-class you want to use with it. Highlight "Classes" in your project's tree view, and create a new class based on UIViewController. You might name it something like "InvoiceViewController".

  • Now, click on "Resources" in you project's tree view and create a new nib (xib) file... use the View xib template! You might name it something like: "InvoiceView". Remember that your nib file basically is going to contain a view for your app with all its various controls.

  • In your code, you are going to create an instance of an object from your view controller class. This object will "control" your view. Inside of this object will be a "view" object. For your code and nib file to work together properly, you need to link up the view object in your view controller to the View inside of your nib file. The next few steps tell you how.

  • Double click on your new nib file in your XCode Project. It will open up in Interface Builder.

  • Bring up the Document window if its not showing already. It basically looks something like the window on the right in the screen shot at the top of this post. It may look a little different depending on which view mode is being used.

  • Don't put any controls/tables/sub-views on the view until later (we'll tell you when).

  • Click on the "File Owner" Icon. If the window wasn't highlighted to begin with, you may have to click on it again to actually select it.

  • Make sure that the "Attributes" window is showing and pick the (i) tab.

  • There will be a class name to select for the File Owner to be. The default is NSObject. Not very useful! Change it to the name of your view controller class. In our example, we would put "InvoiceViewController". If we didn't do this, Interface Builder (IB) would not know how to hook up its View to your view controller's view! File Owner is the name of the class that is going to "own" or "control" this nib.

  • Now, make sure "File Owner" is still selected and, on the Attributes window, you will see a tab that looks like a little white arrow pointing to the right on a bright blue circle. Click it.
  • You will see all the events and objects that the File Owner (your view controller class) supports. One of them will be view.

  • There will be a little circle outlined in black to the right of it. Click it, hold down your mouse and drag the line that appears to either the View icon in the Document window or the View window. It will highlight, when it does, release your mouse. You will see that a linkage has been created.

  • Save your work.

  • Note that at this point, it is okay to add your sub views/tables/controls.


Now if you use this new nib file in your project, it should not blow up on you. Note that I have not covered capturing events in this mini tutorial, or setting label values programatically, etc. This is just covering setting up a nib file so that it will load properly in your iPhone project.


Hope this helps!

Monday, February 16, 2009

Going Again Full Bore

After I had submitted my issues on-line for the program portal, I just kept plugging away at my iPhone application. I must say that my coding proficiency is really kicking in now! I was just limited to testing in the simulator.
Well, was it two or three days ago?... I logged into the portal to see if the status of things had changed. I was bracing myself to see the same-ol' same-ol'. But there was an "Approve" button there! I clicked it and got a nice download link.

Later that Night:
I finally had the time to download the certificate to my iMac. I went through the proper hoops and shazam! It worked! I can now run my apps on my actual iPhone again!

Wednesday, February 11, 2009

2.2 and Program Portal Woes

I made (in my opinion) a big mistake by installing iPhone OS 2.2 on my iPhone a couple of days ago. Now I cannot install any apps I've worked on onto my phone! :(

I basically thought, well, it doesn't matter that this happened, I just got an iMac a short time ago and I want do do development on it instead of my MacBook anyway. The screen is much larger and easier to read that the laptop, the keyboard is better, it has more storage, etc.

So I revoked my certificates, created a request for a certificate and posted it into the program portal.

Part of vast frustration: After posting, usually I get the option to approve the certificate (since I am the "agent") but no option shows up to do this. Arrrrggghhh!

I've submitted a "request" I think the day before yesterday. Still no word from Apple. It makes me want to tear my hair out! Appeo! Appeo! wherefore art thou Appeo!

Another wonky thing: Controls you place on a view in Interface builder don't always appear in the simulator where you put them in the builder. You have to offset their positions to make them come up right. Also, the positioning (both wrong) is different from 2.1 to 2.2! 

If you haven't installed the iPhone OS 2.2 on your iPhone yet, I would say hold off for now. Just my take.

Wednesday, January 28, 2009

A New Dawn?


Quite some time has passed. In that period of time much has transpired.
  • I have a better understanding of Interface Builder now (I would not say that I have a good understanding yet... but I know enough to get some stuff done now).
  • I've actually got little apps I've made to install and run on my actual phone instead of just running in the iPhone Simulator.
  • I've finally got a tab view/navigation view controller type app to work properly.
  • I've got more proficient at working with "tables" in the views (not to be confused with database tables).
  • And speaking of databases, I've been able to create an app the creates a SQLite database file and creates some tables in it and read/writes data to those tables.
  • I've successfully got to work the showing and hiding of a modal view with a modal view controller.
  • Oh, and I bought myself a new iMac for my birthday!

I wouldn't say that I have learned everything I need to know in order to write successful iPhone apps, but I think I probably have 90% of what I need to know down. I am planning on doing some video tutorials on what I've learned... stay tuned...

Tuesday, December 9, 2008

Digging into iPhone Programming: Some Books to Check Out

With Apple's NDA out in force. It was very frustrating to find any information outside of Apple's online documentation on developing software for the iPhone. You want to take classes? Sorry! Apple is great at having all sorts of classes on various Apple software at their stores. Not for programming the iPhone though. What about classes offered by someone else? Sorry! Websites? Books? Buzzzzzz! No dice. Thankfully the super-restrictive NDA has been lifted (of course if you follow iPhone programming development you already know that)!

There are three books that I have had my nose stuck in of late. Let's take a high-level look at each:

Programming in Objective-C
Initially, I got this book pre-NDA. I mean, Objective-C is not just a language for programming on the iPhone or the iPod Touch. It's been around for years. It is the main programming language Apple uses for their apps that run on the Mac.

Considering I had never programmed in Objective-C before much less heard of the language in the first place, this seemed like a good book for me to get.

Turns out this is a pretty good book. It won't actually show you development on an iPhone, but it will teach you Objective-C. It assumes zero knowledge of the language (which is good because that is where I was at)! It allowed me to start to get used to Objective-C's strange syntax of square brackets, declaring object references with asterisks, an initial foray into delegates and more. Don't know Objective-C? Get this book!

Once the NDA was lifted, the following two books became available for purchase:

Beginning iPhone Development: Exploring the iPhone SDK
Of the three books mentioned here, this book is my favorite and the one I have been spending most of my time with. It has spent allot of time with me going to and from work on the train. I've been reading it after dinner. I've been sitting with it and my Mac Book trying stuff out in XCode. It has been my evening reading before going to sleep. It's really a good book.

There are some things I wish were covered in more detail. I wish there was more info on tab view controllers and just more conceptual information on view controllers period. I find it hard to visualize some of the view controller/view relationships.

That being said, the book is chock full of detailed examples. The authors take you step-by-step through each example in a very thorough manner. I love the cheerful banter of the language. It's just fun reading this book! The layout of the book, the illustrations, are well done. I just want to pick it up to look at it. Does that mean I'm a geek? :P

One thing I would mention though, if you never programmed in Objective-C before, this book is not enough. There are syntax things going on that you'll be saying, "what is that for?" Best to get Programming in Objective-C to go along with it.



The iPhone Developer's Cookbook
I actually got this book before Beginning iPhone Development. It is instructional and can help you learn how to program the iPhone, but, just has the title implies it's more of a cookbook type of book. That is, it has "recipes" on how to code different things on the iPhone.

The section on view controllers was helpful to go along with what was said in the Beginning iPhone Development book. It didn't complete the picture for me though.

One thing I like about this book is the recipes included for functionality that does not necessarily show up in Apple's documentation. Like do you want your app to use that cool feature known as Cover Flow? This book has a recipe on how to do it.

Again, if you don't know Objective-C, you best get a book like Programming in Objective-C to go along with it.

Final Thoughts on These Books
If you're looking for information on how to use the Program Portal after paying your $99, you won't find much here. What you will find is a lot of good programming information to kick-start you into the world of iPhone/iPod Touch software development.

Monday, December 8, 2008

Deploying Apps on my Phone From XCode


Let's see.

  • I made sure that I had the latest version of iTunes.
  • I made sure that I had the latest iPhone SDK.
  • I started a new project (in case some of my project properties were screwed up).
  • I carefully plugged in my bundle identifier.

Finally, though I'm not 100% sure exactly why, I can do a build on an iPhone project in XCode and get it to successfully deploy on my iPhone.

This is a banner day for me. This stopped working ages ago and I had been hammering away at the problem on and off with no success. It was very discouraging to say the least.

Well yesterday, that problem came to an end!

Thursday, December 4, 2008

Blog Updates


The side bar had not been updated for months and some of the links either didn't work, or took you places that honestly do not currently have anything to do with the iPhone. So, I spent some time cleaning them up. The links on the side then should be up to date!

Wednesday, December 3, 2008

App Store Issues

The App Store on the iPhone is a great feature! At the touch of a button you have access to hundreds, no thousands of different applications that you can download and run on your iPhone.

I've noticed that Apple has been improving the App Store of late:

- Multiple screen shots.
- Icons on top level lists of randomly selected apps.
- A Report Problem button.

And more subtle visual changes that make this tool look even classier.

But I've been noticing one problem for awhile. Looking at the screen shot up above, can you tell what it is?

The app Disney Fairies Fly! appears more than once in the list. In this case they appear just a couple rows away. I saw quite a few apps during this sitting that were listed more than once.

It would sure be nice if Apple fixed this. I'm not going to whine too much though, the App Store is a brilliant idea and it is getting better as time goes along. What do you think?

Monday, December 1, 2008

Creating Screen Shots on your iPhone

Below are some sample screen shots I did on my iPhone.
You can click on it to see it in more detail:
So, how do you do screen shots on your iPhone or your iPod Touch? The hard way is to attach your iPhone to your Mac, fire up XCode, open the Organizer window and use the screen shot tab. The problems with this method are obvious:
  • You can only do this with a Mac.
  • Your iPhone/iPod Touch has to be tethered to your computer.
  • You have to load XCode and bring up the Oganizer window.

The Better Way
A nice nifty feature that I found out about for my iPhone to do a screen shot (a little bird told me that this feature was available starting in iPhone OS 2.2):

  • Navigate on your iPhone/iPod Touch to a screen you want to create a screen shot of.
  • Hold down the Wake/Sleep button on the top of your iPhone.
  • While holding down the Wake/Sleep button, press the Home button (just below the screen) and release both buttons.
  • The screen will flash white, and, if the phone is not in silent mode, you will hear an SLR camera type noise.
  • Any screen shots you took this way will now be in your iPhone Photo Album! Just go into the Photo Album app like you normally would, and go to the end of your photos!

Using Those Photos

You may be completely satisfied with just looking at your screen shot handiwork inside of the iPhone Photo Album. But I think I can make a good guess this is not the case. Chances are you will want to add these pics to documentation, a web site, maybe even a blog (like I am doing right now).

If you sync up your phone on a Mac when you dock, the photos will be synced into iPhoto and then you can go from there. But another quicker way that needs no connecting and no Mac is to email the photo to yourself.

Get into the Photo Album app on your iPhone and bring up the desired screen shot.
  • In the lower left hand corner will be a button for sending emails. Tap it!
  • You will see your screen look like something to the left. Tap the Email Photo button.
  • You will see an email be generated with the screen shot in it.
  • Make sure that the from and to email addresses are there and accurate. And Send!

Finally, on your computer, open the email and save the picture attachment to your hard drive. You may want to tweek it in a graphics program such as Photoshop.

Now you can:

  • Add the screen shot to a document such as a Word document.
  • Upload it and add it to a blog post (like I'm doing here).
  • Upload it to your web server, etc.

In Closing
Finally, I leave you with one funny side effect of doing screen shots like this:

If you are browsing those screen shots in the Photo Album, you just might get confused and forget that you are in the photo album and try pressing "buttons" and wonder why they don't work! This can be good for pulling some pratical jokes on your friends!

Back Again. For Now...

The iPhone Obsessed blog is back up and running. I can't really go into the reasons that I'm not covering it on Chomer.com right now. But, basically, it is a pragamatic choice. I want to blog about the iPhone, and I have this blog already set up, so here we are!

I will be blogging about anything iPhone/iPod Touch with an emphasis on Apps and app development.

Welcome back to iPhone Obsessed!

Monday, November 5, 2007

Time Magazine Names iPhone the Invention of the Year


Kinda funny the reasons why it was named the invention of the year:




  • The iPhone is pretty
  • It's touchy-feely
  • It will make other Phones Better
  • It's not a phone, it's a platform
  • It is but the ghost of iPhones yet to come

To read the explanation of these points click here to read the full article.

Tuesday, October 30, 2007

Woz Complains About the iPhone

Steve Wozniak, the co-founder of Apple, has been complaining about how closed the iPhone is. I just think about him and Steve Jobs starting the company together in a garage. That was then. Now, today, who's probably setting the tone, establishing the vision of the iPhone? Steve Jobs. Who gets up in front of crowds and demonstrates the latest features? Steve Jobs.

I'm guessing when they started out together they were probably pretty good friends. I wonder, do they talk to each other anymore? Do they go to the same parties?

I wonder if they've talked about the direction of the company mano-o-mano.

I know one thing: I'm too chicken to unlock my iPhone! And though the jail-break stuff is cool, I, again, am too chicken to mess with this stuff. My hope lies in announcements of a future SDK in '08.

Monday, October 29, 2007

Is the Honeymoon Over?


A few times lately I've forgotten to bring my iPhone with me (its in my pocket right now). My wife has been suprised by this. More than once she's said: "Have you forgotten your girlfriend?"

I must admit the intense infatuation is pretty much over for now. Now my phone and I have a more low-key relationship! It is definitely an awesome mobile phone. I still can't wait to see what Apple comes up with for developers at the beginning of '08. But I'm not draining down the battery like I used to.

I did watch "Meet The Robinsons" on my iPhone. It's a Disney movie I bought and downloaded off the iTunes store. It was fun. And the quality of the video output and sound is great. But watching video on it has already become sort of "been there... done that."

Well, it looks like the iPhone won't meet all my emotional needs! It's just a machine designed by some creative people after all. Well, now I can move on and have a more mature perspective on the iPhone. It's a tool not a Saviour. Should I change the name of this blog to reflect my new attitude?

Disabling or Changing the Color of Tab Highlight Color

You may have noticed that when you tap a link on a web page in Safari on your iPhone that it lightlights the area a light gray. For normal web pages this might be okay. I mean, it's nice to get a visual queue that the page is responding.

But let's suppose that you want to control the highlighting. And you don't like Apple's light gray color. Maybe you want to do some super-cool highlight routine controlled by a Javascript routine, or you want to do things the same way but you want the color to be blue or something. How do you:
  • Change the highlight color, or...
  • Get rid of Safari automatically highlighting your tab all-together?

-webkit-tap-highlight-color:

I'm a control-freak when it comes to programming so when I saw this I was like really happy! If you use the rgb() function with the fourth parameter, you can set the opacity. Setting it to zero hides the highlighting.

To see Apple's documentation on this CSS tag with examples click here.

Tuesday, October 23, 2007

Dimensions of the iPhone Display

Here for a handy reference is the dimensions in pixels of the iPhone display.

.
If you use the following to scroll the URL Text field off the edge of the display:
.
setTimeout(window.scrollTo(0, 1),100);
.
This would give your web app an extra 60 pixels vertically to work with on the display.

Thursday, October 18, 2007

Will Apple Make An iPhone with a 3G Chip?

Yesterday MacWorld's Dan Moren posted this entry: 3G iPhone Getting Closer to Reality. One of the big beefs with 3G is how much energy it consumes. It goes on to talk about how a new 3G chip from Broadcom uses less energy.

Now, we don't know for sure if this chip would "do the trick" for the iPhone. Or if it would fit in the case with all the other stuff, etc. We don't even know concretely if Apple will make a 3G phone. I would say it is highly probable that they will make a 3G iPhone eventually. It is likely that they will make a 3G iPhone. I guess I find it humorous that the title is 3G iPhone Getting Closer to Reality when really, most likely no one outside of Apple knows this as gospel truth. I think I would have called it something like: 3G iPhone Possibly Getting Closer to Reality.

One thing Dan mentions is "and the lack of widespread availability of 3G networks in the US" as a reason Apple didn't go with it here. This is something Apple really has no control over. The phone companies (in this case AT&T) have to provide the better coverage. I can tell you its not as simple as telling your engineers: "Ok have all the 3G networks up by the end of the week." All the equipment needed to setup the network costs money. And, allot of time and man-power is needed to install and test those new network nodes. This isn't setting up a small LAN in a local business. This is an ongoing task that has many people working on it. When will 3G networks be ubiquitous in the United States? I don't know. My point is though, even if Apple came out with a 3G iPhone tomorrow with good battery life doesn't mean things would be better (near term) they might actually get worse!

It will be fun to see this all play out over the next couple years!

Wednesday, October 17, 2007

Apple Sanctioned API Coming in February

MacWorld had this post today. This really sounds good! I'm hoping there will be flexibility of say coding in C, and still being about to create web apps that can run off line a-la Google Gears type setup. Can you tell? I think I hear the sound of hundreds software developers drooling and panting. At least we have something to look forward to!

Tuesday, October 16, 2007

Mobile Safari Changes for 1.1.1

Ok, I've been finding alot of useful stuff that Apple did for iPhone 1.1.1 that will help use developers alot! Instead of listing each change in a seperate post, I decided in this post to give you a bulleted run-down that I captured after going through the online documentation that Apple has. Let's look at the new features:
  • For the viewport meta tag there are two new constants available for you to use:
    device-width
    device-height
    for more info on using them go to this page here and this page here.
  • The next item doesn't explicitly say that its for 1.1.1, but I've never seen it before. Over on Google Groups, one question has come up on how to keep Safari from creating a phone hyperlink on a number that it thinks is a phone number but is not a phone numer! Introducing the meta tag:
    format-detection
    for information on how to use this meta tag, go to this page.
  • Here's another item not linked explicitly to 1.1.1, linking to a youTube video. Saw some questions in the Google Groups on this. Here is a page that gives you the syntax.
  • So you have an input form on your web page. And you don't like how mobile Safari either auto-corrects the user's spelling or auto-capitalizes. Or, maybe you want to make sure that one or both of these things happen during text input. iPhone 1.1.1 adds two new attributes you can use on an input tag to address this problem:
    autocorrect
    autocapitalize
    How to use these attributes...
  • Read some interesting information on one-finger events. What interests me here is the mention of a working onscroll event.
  • Alright, we know that the onresize event doesn't work properly on the iPhone. Well iPhone 1.1.1 introduces the onorientationchange event to use in your body tag. Why they just didn't make onresize work is beyond me. But at least now we can check this without using setTimeout hacks! More information on this event. Oh yes, here you will find out that they added a new property to the window object: orientation. So, in your event handling routine you can check window.orientation for a value and decide what to do. Cool! Hey it returns the angle in degrees how the user re-oriented their iPhone! Doubly cool!
  • You might want to check out this list of Supported Events for the iPhone as of 1.1.1.
  • There is a new debugging console built into Safari for 1.1.1.

Well, that is about it. I know they made some CSS changes too but what precisely I do not know. But hey! All this stuff I've bulleted is very good stuff! All you web app developers for the iPhone / iTouch: enjoy!