Sponsors

 

Friday, September 28, 2007

Comments on Release 1.1.1

Yesterday I saw that the software release 1.1.1 was out for the iPhone. Imagine that I would forget to install it at home that evening! It might be a good thing that I didn't. I'm a wee bit nervous about installing it due to the fact some folks who've never unlocked their iPhone or installed third party apps have gotten hosed.

Some observations I saw though, it might have had something to do with the servers being overloaded with everyone installing the release. Things not working right... something wigging out during the process. Thought: how about doing the complete shutdown of the phone as opposed to mearly pressing the the power button? Might work. After all, after installing the previous patch, I couldn't make calls at all but when I did a complete power-down I was back in business!

I will probably install the patch either tonight or tomorrow. Wish me luck!

Wednesday, September 26, 2007

Making a Call While Using the iPod Feature

Nothing new here about the functionality. This is just a review/comment about making a call while listening to music on my iPhone.

I hadn't actually done this before so I thought I'd give it a try...
  • Started playing some music on my iPhone (I listened in using the ear-buds that came with the phone).
  • As I walked along towards home, I switched over to the Contacts under Phone and picked out a contact (my wife). The music continued to play on. I like how I can do other things on the phone while the music plays. I can even turn the phone "off" and pop it in my pocket and the music plays on.
  • Tapped the phone# of my wife to begin a call.
  • As I did this the music in a very subtle, very gentle way, fades out and the call begins.
  • The phone rang, I talked to my wife via the ear buds.
  • One nice thing here is that I was walking down the street outside and I could hear my wife just fine and she could hear me clearly too. Nice.
  • I hung up.
  • The music began to play again.

Though I knew the iPhone had this functionality, I did not know how easy it would be to use, or, the quality of a phone call using the ear-buds. I found it was very good. Very easy to operate. I'm getting more and more impressed with how Apple has paid attention to details.

Too bad my Blue tooth ear piece isn't as intuitive to setup/use. It took me awhile just to figure out how to get it on my ear! ... I know I'm lame!

I haven't even used the Blue tooth headset yet, but I hope to spend some time with it tonight to hash things out. I'll let you know how it goes, the quality of the audio, etc.

Tuesday, September 25, 2007

iPhone Web Dev Google Group... Zzzzzzzz

As I do every two or three days, I went out to the iPhone Web Dev Google Group site to see what was new. I've gotta say, things are boring there right now. Not a whole lot of activity. You might say to me, "Well then post something on it fool!" Well I don't have anything to post now. But I'm just one guy. Just one grain of sand in a sea of programmers. Surely something is going on? I speculate:
  • People have lost interest in developing software for the iPhone and their attention has moved on to other things (I hope not).
  • People are busy working on their killer iPhone app and don't have time right now to post something (wait unit it's done and we'll post)... this is the camp I fit in.
  • Everybody knows everything there is to know about the iPhone so there's no point in posting anything anymore (not likely).

Ok, I want to be intellectually entertained. I'm bored.

Monday, September 24, 2007

Site with "Native" iPhone apps to download

The site iPhonexe.com contains native iPhone apps to download and use. How good are these apps? I don't know. I've not gotten the nerve to to try them yet. One item I am interested in trying is the Ringtonator Studio. This app doesn't run on the iPhone but appears to make it possible to edit your own custom ring tones and place them in the ring tones folder of iTunes. How long it might work is anyone's guess.

Confession Time

I develop software for a living. I own two Windows PC, and one MacBook. I know several programming languages and have been developing software for over 20 years. You would think I'd know how to do some basic stuff on my iPhone already! Like shut it down (really shut it down not just sorta shut it down)!

About two or three days ago I noticed that all of a sudden I couldn't make calls on my iPhone! Everything else seemed to work, even when data had to be gotten over Edge instead of Wifi. When initiating a call, it would "start" and stay that way. No ringing heard, no person answering, nothing. I had my wife make sure that her cell phone was on while she was in the same room. I attempted placing a call to her cell phone. It did not ring. She tried calling another number I had just tried to call. It rang, she got through. Same network, we're both AT&T customers. She tried calling me, again, no work-ey! My phone didn't ring and she got immediately dumped into my voice mail.

I tried "turning off" my iPhone and turning it back on. This was Saturday. It still didn't work. I resolved, that if I couldn't figure this out over the weekend I would go to an AT&T store to get things sorted out.

It seemed to happen sometime after the latest firmware upgrade. I checked all the latest iPhone news on the web to see if there were any items describing how Apple introduced some new bug which made the phone functionality not work. There was nothing.

Fortunately for me the phone part of the iPhone is not critical for business, etc. It could wait until Monday to deal with.

Interlude: On Sunday, after visiting my father, I printed out my Apple store $100 credit and headed to the ol' Apple store to use it (I got a blue-tooth headset by the way). I decided to talk to an Apple associate about this. I wasn't really sure this would help cuz I figured it was probably an AT&T type issue (everthing else on the phone seemed to work fine and I didn't get any error messages).

Apple guy: "Did you do a completely power-down of the phone?"
Me: "I don't know how." ... how embarrassing!

Did I ready all the instructions? No for Pete's sake, I'm a guy!

Turns out that turning the phone off (pressing the "power" button on the top of the phone), doesn't turn it completely off. I knew that already. What I didn't know is that there is a couple of ways to do a complete shutdown of the iPhone:
  • Hold the power button down several seconds until a slider comes up that you can slide with your finger to turn the phone all the way off.
  • If the phone is locked up really good (never has happened to me so far), and the slider doesn't work for you, hold down the power button and the "home" button at the bottom of the phone at the same time until the phone powers down.

I used method number 1 in the store and waited a few seconds (gotta let those electrons disperse), and then turned the phone back on. I tried to make a call home.... Ring!

Yes! It worked! It was suggested to me that I turn my iPhone all the way off about once a week and then turn it back on (sort of a iPhone version of a Cold Boot).

Hope this helps anyone else who doesn't read all the instructions!

Monday, September 10, 2007

ModMyPhone

I found out about a very cool site with alot of stuff on it called ModMyPhone. I discovered it via a post on the iPhoneWebDev Google Group under this post. Thanks Randy! I like this site. Gotta look around it some more! I'm going to add this link to the side bar on the right.

Thursday, September 6, 2007

Discovery: Javascript Variables Need Declaring

I've been working on this iPhone App... which had been rolling along nicely.

Then... after adding a few lines of code, it stopped working (what I had gotten done so far anyway).

Narrowed it down to this line:

sCurrPanelCode = sID;

"Weird!" I thought. So I used a try/catch on this line with a message box.

The message returned: "Can't find variable: sID"

I would have assumed if I hadn't declared it it would have created it automatically and returned "NaN".

Nope! Just keep a weather eye out for this one mates!

Some Consolation

There looks to be some good news on the horizon for the early adopters of the iPhone. Did you buy the iPhone at full price before the discount? Apple's planning on giving out $100 gift certificates to soften the blow. I'd of peferred $200 (the actual difference) but beggars can't be choosers!

Wednesday, September 5, 2007

Boo Hoo! Sniff!!

The price of iPhones has dropped by $200! Nice if you haven't gotten one yet... Not so nice if you already purchased one. Kinda stings! Can't wait to sync with iTunes later to see the new ring tones feature.

Friday, August 31, 2007

YUI Theatre: Interesting Stuff for Javascript Developers

In the previous post which shows a video where Joe Hewitt talks about his iUI javascript/CSS plugin, at the end of the video there was a URL that was displayed. I went there and...

There looks to be alot of goodness here that developers can benefit from. I'm going to camp out on this page for awhile and see what I can learn.

The URL?

http://developer.yahoo.com/yui/theater/

If the Yahoo!Video links on the page don't work (due probably to a firewall) try right-clicking on the download.yahoo.com link and saving the Target.

Another neat thing is that these MV4 files are iPhone compatible. I wouldn't try downloading them over EDGE though!

NOTE:
After downloading the MV4 file to your PC, you might notice that if you double click on it, it doesn't know which program to use to open it with. I think if you have iTunes installed this probably is not a problem. I've got to check this. You still can open it though... in the Quicktime viewer. Of course Quicktime needs to be installed on your PC.

  • Open Quicktime.
  • Pick File/Open and browse to the spot on your PC where yous saved the MV4 file.
  • Change the File of type to the setting All Files (*.*)
  • Pick your file and click the Play button!

Wednesday, August 29, 2007

iUI Video

Whilst browsing on Ajaxian, I came across this video. I embed it here for your edification. For some reason, this helped me understand it abit more than mearly reading Joe's web page about it.


Yes you CAN Detach from a Wifi Connection

You might have read one of my complaints under Some Observations, you would have read that once you connect to a Wifi source that you don't like (perhaps it doesn't work properly), that there was no easy way to detach from it.

Well, when getting into the Settings on my iPhone during the DevTalk, I found that there was an option to do this! Funny, I didn't see it there before!

It could be:

  • I'm blind in one eye and can't see out the other and it was there all along.
  • It was added to my iPhone as a result of the recent patch Apple sent down (I choose to believe this one)!

How To:

  • Press the one and only button on the bottom of your iPhone to take you to the main "page."
  • Press the displayed Settings button.
  • Tap the Wi-Fi option.
  • Under Choose a Network... will be listed you Wifi networks. The one you are using will be checked.
  • Press the little arrow in the blue dot over to the right of the network entry. Detailed information will slide into view for this network entry.
  • There will be a nice big button at the top of the page labeled: Forget this Network
  • Press it!
  • You will be prompted with a red Forget Network button and a gray Cancel button.
  • If you want to go for it, Tap the Forget Network button, else tap the Cancel button to leave it alone.

There! Now you know!

Tuesday, August 28, 2007

Back from the iPhone DevTalk

Well, I just got back from the Chicago iPhone DevTalk. Some people will say keep your expectations low and you won't have as far to fall when you get let down! Based on all I have read, I decided to come not expecting the world. I learned a few things. But nothing earth-shattering.
  • Information on building native apps? Not even mentioned.
  • Information on event handling for your web apps that hasn't appear on the general web as of yet? Nada.
  • I am a newbie when it comes to using OSX and my new MacBook. I couldn't really get into my web host to do any developing during the period designated for it.

On the positive note:

  • I learned some subtle design ideas to give my web apps that "iPhone" look.
  • Some items that I knew about were explained in some more detail.
  • I saw some demos of sample apps in various stages of completion given by other attendees. ... I didn't have anything ready. Boo hisss!
  • I got to talk to some other attendees and exchange ideas.
  • I got to give some idea feedback directly to an Apple staffer there.
  • I got a free continental breakfast!
  • I got a very nice free lunch!
  • Free soft drinks and bottled water.
  • I learned more about using Google Maps from my web app.
  • I got the day off (I used up a personal day)!
  • The conference was just a few blocks away from where I work.
  • I had fun!

Thursday, August 23, 2007

Exploring the iPhone Safari DOM

You may recall my post about how neat it would be if someone would write a tool to explore the iPhone's DOM sort of like done on BrainJar.com. My idea was to use Ajax to display the information on a regular sized monitor. Nice idea. But new code needs to be written.

All of a sudden I had an epiphany. If I didn't mind looking at the DOM on the iPhone's display, I could just go to the page Mike Hall created on his site and use it on my iPhone!

It worked!

Yes!
  • Put the following URL into your iPhone: http://brainjar.com/dhtml/domviewer/demo.html
  • Use your fingers to enlarge the page that comes up to a decent size.
  • Look on the page for the text: "The DOM Viewer can be used explore this page's document tree."
  • The word "document" will be in a slightly different font.
  • Tap the word "document" with your finger.
  • A new window will open up in the browser showing you the DOM tree!
  • Use your fingers to zoom this output to a readable size.
  • Go crazy discovering new interesting stuff about iPhone Safari!

Thanks Mike Hall for creating such a useful tool!

Note: you may have to tap links more than once to get them to work.

Wednesday, August 22, 2007

Some Observations

Well, I've had my iPhone for a week now and I have some observations to make. It's definitely different having one with you everywhere than going to the Apple store and trying stuff out for a few minutes!

Photo gallery
My "Photo Albums" only comes with one, the "Camera Roll" to put pictures in. I've got 11 pictures in it so far. What I find strange here... I can't add or delete albums. There is no little plus in the upper left hand corner to press to add an album. There is no Edit button in the upper right hand corner so that I can delete/rename albums. This really gives me the feeling Apple really pushed the iPhone out the door. At least I haven't really run into any real bugs yet. My guess is that Apple will release this functionality in a patch some time (maybe when Leopard is released in Production)?

WiFi Network Remorse
There have been occasions that I picked a Wifi network to use that doesn't work properly. I don't see anyway of un-selecting a network that I decide is no good (short of resetting the network settings).

CSS
CSS for fixing an image in place so it doesn't scroll with the rest of the content does not work. It sure would be nice if it did!

Capturing Scroll Events
I've read that the onscroll event is not captured. I haven't actually tried using it. It doesn't matter though and I will explain why. I wrote a little page that had a SPAN tag group with ZZZ in between it (that its ZZZ doesn't really matter I put it in so it would be big enough for me to tap it with my finger)! I added an onclick event to the span tag that called a function that basically did the following:
  • var z = document.getElementById("z");
  • z.innerText = document.body.scrollTop;

Assume that the span tag had an id of "z". Also that the page had enough other stuff on it where you can scroll it up and down with your finger. The following happened:

  • It returned a number (so the property exisits). It did not return a NaN or null or generate any sort of javascript error.
  • The number it returns is always 0 (zero). Hense making this property completely useless.

I sure hope that they fix Safari to give a offset number of how much it has been scrolled with the finger. It need only work in my opinion if the developer uses the "view" meta tag for iPhone specific pages. Oh, and having a working onscroll event would be nice too! I was sort of amazed that given the fact these things don't work, that the scrollTo() method does work!

Sliding web pages and capturing finger movements
Since you can have multiple web pages open at once (up to 8), Safari on the iPhone allows you to swish your finger to the left and right to move between them. If there is only one page open when you do this, it just sorta bounces slightly off the edge and returns to its original position. I can see why Apple disabled capturing finger movements on the page... because it would conflict with the overall user interface functionality built into the browser (for that feature). My thought here is to add a new option to the "view" meta tag. Something like: "fullcontrol=yes;" What this would mean, is that as a developer, I want the swishing from the left to the right between pages disabled on this page. This is what I want. And I want it so that my javascript has full control over capturing finger movements. If the user still wants to move between pages, they can tap the little icon in the corner for that view. If I used this fullcontrol option, the page wouldn't giggle when I dragged my finger across it, but maybe capture onmousemove events, or better yet, see my wish list for desired event features! Onmousemove would be nice for now though.

Email Not Working
For most people, they probably have had no problems setting up their email. I've tried getting it working with both my Yahoo email account and my Google email account with no luck so far. I've got to figure this out eventually. I even tried some stuff on this Google email support page for the iPhone... no dice, it still did not work.

Well, I'm sure I've missed some of the things I thought about when I ran across them, but this is good for now.

Overall though after using the iPhone for a week now, I really like it a lot. As I used the virtual keyboard, it seems to get better (or am I getting better at using it or both)? I wish the battery life was about twice as long... but it is adequate. Unlike my old cell phone with it's smaller screen, my iPhone fits nicely in my pocket (like a sleek wallet).

Friday, August 17, 2007

Detecting an iPhone Server-Side in ColdFusion

For those rare birds who do there server sided scripting in ColdFusion or ColdFusion MX, here is a snipet of code to determine if your user's coming to the site on an iPhone:

<cfset sInfo="You are NOT using an iPhone.. Bah!">
<cfif Find("iphone;",LCase(CGI.ALL_HTTP)) GT 0>
   <cfset sInfo="Hurray! You are using an iPhone!">
</cfif>

<cfoutput><html>
<body>
<center>
     <h2>#sInfo#</h2>
</center>
</body></html>
</cfoutput>

Temperary spot for my test page: http://chomer.com/iphone/games/icheck.cfm


Run it on your iPhone, then run it on something else!

I got it!

Yes, it is official. I broke down and bought an iPhone! Here I am holding it mear minutes after activation. I also bought a MacBook too! Yeserrie Apple is making out like a bandit on me!

Thursday, August 16, 2007

5 Hour Energy Shots - Too Much to Handle!

You might have heard of these 5 hour energy shots. Sound just like the thing for you programmers out there! Right? Hmmm...

I guess that depends on who you are. I tried it and it worked fine. It kicked in in about 5 minutes after drinking it (I had the whole 2oz bottle).

Then I felt great! But, about an hour later (maybe less) it kicked in harder. I felt not just alert but wired. A little too much there Orville! Ah well, after 5 hours it should have worn off--- right? Wrong-o!

Went to bed around 10pm. Wide awake. I wasn't able to do any decent dozing even until around 1 in the morning. I'm probably extra sensitive to this stuff. But at least you've been warned by someone to "go it slow."

If I do try this stuff again, I will probably only drink a quarter of the bottle for the day and see what happens. After my experience a couple of days ago, its going to be awhile before I attempt this again! Today is the first day that I feel that there are no lingering effects still clinging to me!

Surge... then Dropoff

Is it just me? Or have things sorta died down on various development web sites.

No videos from Ryan on iPhoneDevCast for awhile.
No new tricks on doing this or that for the most part.

Perhaps its just frustration at not having much info on developing for the iPhone.

On the flip-side, some hardcore hacker types have come up with some real iPhone apps recently.

Just thinking "out loud."

Wednesday, August 15, 2007

It's Official: I'm In!

Got my confirmation for the iPhone DevTalk August 28th in Chicago. Yes! When I read to my wife about bringing your laptop and iPhone to do some codin' she said "Well it looks like you'll need to get one!"

Double Yes!

Tuesday, August 14, 2007

Cool Native Apps for the iPhone

The C4 conference that just finished up in Chicago this past weekend had some very cool happening if you are an iPhone geek. Can you say native apps for the iPhone?

Stuff like a Pong game (iPong), a "Lights Out" styled puzzle game, and even a webcam 2-way conferencing app. To read more details, click here.

iPhoneOpener Hacking

Another "get out of jail" app you might be interested in: iPhoneOpener.

Here's a Good Article on Hacking the iPhone

I found this article on MacWorld very interesting. I am going to be re-reading it some more to see what I can glean here. They also have a link in the article to the iPhone hacking kit step-by-step.

Monday, August 13, 2007

iPhone Web Application List

This is a list of iPhone web applications I have found that are done or coming along pretty good. Basically this is a list of iPhone/iTouch web apps that have in one way or another captured my interest. They may work well, they may be flakey. I might find some of these useful or entertaining, but mainly, for me, I am looking for ideas, how to do (or not do) things on a web app. I just want to provide one central place where you (or myself) can go to find them.
  • Facebook - iPhone/iTouch version of Facebook (work done by Joe Hewitt).
  • iPhoneWx demo - a weather application for the iPhone.
  • iTypeText - some sort of customized "keyboard" input routine.
  • Pickle View - Follow real-time baseball games.
  • Ion Bowl - Bowling game.
  • Carmadillo - A Frogger type game. You're an armadillo trying to avoid cars, etc.
  • Bejeweled by Popcap - The original gem-matching game.
  • Fandango - iPhone/iTouch version of the Fandango movie website. This is kinda cool. I think I could actually use this practically!
  • Big Bang Sudoku - Puzzle game with four difficulty levels.
  • SmugMug - iPhone/iTouch version of a popular photo sharing site.
  • Typepad for iPhone - An iPhone optimized portal for updating your Typepad blog.

Know of any other promising iPhone apps? Let me know in a comment below! I will keep adding to the list as I find more apps.

UPDATE: Apple now has their own directory of web applications for the iPhone/iTouch. You can check out what they have at any time via the links under Apple Web App Directory on the left hand of any page on this blog.

Logger Page Stumbles out of the Gate

I went to the Apple store on Friday evening with my wife and put in the URL from the post below. Nothing worked. I could not get past the intro "page."

I think, based on what happened, that the img tag in the iPhone Safari browser does not support the onclick event.

One other minor problem was I did not make the viewport small enough to take into account the browser's UI above and below.

So, back to the drawing board.

Friday, August 10, 2007

New iPhone Event Logger Page

I put together another iPhone event logger page. Put the following URL into your iPhone:

http://chomer.com/coding/iphone/eventtest/

This page will (hopefully) allow you to test how different events fire on an iPhone page. One nice thing about this is you can put view the log, and put in your email address and have the event log sent to you.

Sometimes it might take a while for the email to get to you.

I have not tested the page on an iPhone (yet), I'm going to the Apple store to give it a test for myself.

Different events highlight the DIVs in different colors.

Tuesday, August 7, 2007

Desired Programming Features

There are various forms of "wish lists" out on the Internet regarding features people want added to the iPhone. This wish list is narrowed down to things I as a programmer would like to see added to the iPhone Safari browser.

The first list of items I want to cover actually could be applied to any web browser on any platform. Yup! I think that the following would be of immense use running under windows or Linux, using IE, FireFox, Opera or Safari! Ok, so this is more than what I said in the first paragraph!

The second list of items is a wish list of iPhone specific things I would like to see added to the iPhone Safari browser's functionality. These items have to do with interacting with the iPhone's user interface.

List 1: Enhanced Programming Functionality for All Browsers (Especially iPhone Safari):

  • A "webapp" meta tag. If the web browser sees this, it will know to save the file in a special area for the domain it came from.
  • When the browser sees that the page is flagged "webapp", it will call the server via the domain that allegedly sent the page to the browser. To will expect a response from the server. The purpose of this functionality will be to prevent a web app that has it's domain spoofed from being able to run. This challenge response would only be done once during the web app's installation.
  • Users would always be prompted before installing a new web app.
  • The web browser will have its own web app page that can be accessed either from the menu or the main toolbar.
  • The user can bring up this page and click on a link/button to start the web app.
  • The web app will run locally (unless a URL on an image or link points to an external domain).
  • Users would be able to delete web apps from their web app page.
  • Users could set up the maximum storage space allowed for all web apps on the client computer.
  • Users could set up the maximum storage space for a domain or sub-domain that the web app is coming from.
  • Users could set up domains which they wish to automatically block any web apps from installing on their PC.
  • The storage for web apps would hold the following items: HTML files, Javascript files, image files, mp3 files, own cookie area, it's own private database instance.
  • All data for a web app would be stored encrypted.
  • Each web app would have it's own private database instance. This instance could have one or more schemas. One could use pretty generic SQL to work with a schema.
  • For a web app running on an iPhone (at least), another meta tag could specify an image file to be used as a button (for the web apps page).
  • All scripting would be done in Javascript.
  • All the new functionality would be exposed via the new webapp object.
  • webapp.databases would expose any database schemas as well as methods to work with them.
  • Cookies would work like normal from a programmer's perspective but would be saved in the web app's own storage area.
  • webapp.getInstallDate() would return a date object with the date/time the web app was installed.
  • webapp.getDomain() would return the domain/sub-domain that the web app came from.
  • webapp.databases.createSchema(schemaName) could be used to create and return a new schema object.
  • webapp.databases.getSchema(schemaName) would return an existing schema object.
  • webapp.databases.deleteSchema(schemaName) would delete a schema name. If successful, it would return a value of True.
  • webapp.databases.getSchemaList() This method would return a javascript text array of all the schemas that the databases object contains.
  • schemaObject.addTable(tableName) Would create a new table. Could Use DDL too.
  • schemaObject.delTable(tableName) Would delete a table. Could use DDL too.
  • schemaObject.executeSQL(sql) Would execute SQL. If running a SELECT statement, it would return a recordsetObject.
  • schemaObject.beginTransaction()
  • schemaObject.commitTransaction()
  • schemaObject.rollbackTransaction()
  • recordsetObject.getRecordCount()
  • recordsetObject.moveFirst()
  • recordsetObject.moveLast()
  • recordsetObject.moveNext()
  • recordsetObject.movePrevious()
  • recordsetObject.getFieldValue(fieldName)
List 2: Enhanced Programming Functionality Desired (iPhone Specific)

  • An "ontouch" event. The event object would return an array. Each array element would contain an object holding the coordinate of a pixel that was being "touched" at the time, as well as a timestamp when the event occurred. Using this info, one could even write a finger painting type app which captured all the subtleties of the user's finger gestures.

    Example:
    var touched = event.touched;
    alert("pixels touched="+touched.length;
    var dot = touched[0];
    alert("coords:"+dot.x+","+dot.y);
    alert("timestamp: "+dot.date);

  • An "onrelease" event. Would work the same way as the ontouch event but the array of objects it would return would be of all the pixels that were being pressed but now are not being pressed! Sort of like mouseup but more robust.
  • An "onresize" event for the body tag that works properly!
  • window.makeAsyncSound(sSoundFileName) This would return a asyncSound object.
  • asyncSound.onplay used to trigger code to run when sound starts to play.
  • asyncSound.onplaydone used to trigger code to run when sound is done playing.
  • asyncSound.play() plays sound.
  • asyncSound.getStatus() returns the status: 0=not playing 1=playing 2=error
  • asyncSound.stopPlay() stops playing sound (if it is currently playing)

I think this is a good start. What do you think? What are some possible security issues in the web app architecture that I've set forth? I'm planning on adding and tweeking this page as you give feedback and as I get more ideas. Perhaps it will inspire some Safari browser developers?

Thoughts on Traversing the iPhone Safari DOM

This thought provoking page reveals an exploration of the DOM in the iPhone Safari web browser. There is mention of using the Dojo debug statement to do this. This page made me think of something on BrainJar.com which enumerates through all the objects in the DOM and displays the hierarchy for you. My thought is to write something like this which uses Ajax to send back to the server this info and then have another page which displays the results. This results page would be viewed on a regular sized screen hooked up to a PC rather than the iPhone display. One could expand/collapse items in a tree view of the DOM and explore what's there. Anyone working on such a thing?

What's very cool to me is that running the viewer in IE on my PC, it exposes a list of events that my browser supports. Can this be done with the iPhone? Once these events are "discovered," one could write a test page using these events and see what happens when doing X or Y on the page.

To be honest, I'm really not interested right now in how it compares with other browsers or devices. I just want to know that for the iPhone, it works thus-and-thus.

Some iPhone Development Tools

Here's a list of some development tools for the iPhone that I've stumbled upon. I found this batch on the Juixe TechKnow page talking about the iPhone DevCamp. At this point I have yet to really use all the functionality offered by them. I've just visited their pages and read up on them abit. I've not included everything from this page because I've got links to those other things elsewhere on my blog. I've tried to flesh out some more details for you though.
  • iPhoney - This is a free, open-source web simulator one can use for working on an iPhone app on your PC. One little note: I keep debugging turned on in IE and this page gets some javascript errors. Tisk, tisk!
  • Ajaxian page covering iPhone development tips. Right now there are some tips on using Javascript to check the orientation of your iPhone and adjust for it, getting rid of the tool bar, using the "viewport" option of the meta tag, and a few other bits. As with many resources out there right now it is a bit sparse.
  • David Cann's iPhone Simulator. It's fun to flick the list up and down in this simulated iPhone. I'm not sure (its not clear to me) if this just allows you to play with a virtual iPhone on your PC or if somehow one can use it to debug their own iPhone apps.
  • TestiPhone.com - iPhone Simulator. This one really looks attractive to me. Supposedly it works best if you use it with the Safari 3 browser. It also works with IE7 and FireFox 2. You can type in your URL in the simulated URL textbox and press ENTER. And it works. I tried this one out abit. Note the Google page doesn't automatically come up. Hitting the "Refresh" button does not work right. I had some frame issues. But this shows real potential. If they get this working completely, one could try stuff out without needing to install alll sorts of stuff on one's PC. Currently it does not support zooming, though they are working on it.
  • Firebug for the iPhone. Joe Hewitt has created this tool for testing Javascript on your iPhone. It appears to allow you to enter javascript into a web site on your regular PC, the site in turn "sends" the javascript to your iPhone, the iPhone then runs the javascript and returns the results. The results are displayed on your nice large computer monitor of your PC instead of the iPhones relatively small screen. The server stuff is written in Python. I don't know Python, but Joe's thoughts have given me some ideas of my own.

Monday, August 6, 2007

iPhone Obsessed

There is just something about this whole iPhone thing that keeps bringing me back. It draws me like a bug to a light of a summer's night. Right now, I can't afford to own one. But I want to try out different "programs" I've worked on on the thing. Is that good English? :) So I load up my code on my web host, hop in my car, drive over to the Apple store and try out my creation. Kinda tedious to say the least!

It definitely brings back memories. Remember the Radio Shack TRS-80? I was a teenager when it came out. I couldn't afford one of those either. Me and my friend Rick would go over to Radio Shack and hopefully the staff would allow us to play with the show room model and try some programming. Some did, others were a little cranky.

The computers of that era weren't commodities, or appliances that people just ran canned software on them, they were the center of exploration, and imagination. They were the realm of hobbyists.

I would not suggest that the iPhone is some klugy little computer that doesn't do much and hobbyists would go through great hurdles to get something useful out of them. Steve Jobs might have a cow that someone would say such a thing!

But in a way it is limited on how you can develop on it. And, though it's interface blows other cell phones in the dust, it is a cell phone, and there are the limits of such things as the screen size and battery life, and (at least for now) the need to be connected to the Internet. These challenges, and the beauty of the device, pull me in.

It is truly a "gadget." One that invites, challenges, a person to play, to create. And has the benefit of being small enough to carry around.

Lord willing, I will get my own iPhone so I can have my own personal gadget, I will play with my new toy. I will create, I will continue to imagine.

Friday, August 3, 2007

"Official" iPhone Tool?


Ya gotta love this! Supposedly sent back with a serviced iPhone.