Sam's Lifestream - tagged with iphone http://lifestream.gosammy.com/feed en-us http://blogs.law.harvard.edu/tech/rss Sweetcron sam@gosammy.com Commute Logger http://lifestream.gosammy.com/items/view/2161/commute-logger

This semester I enrolled in an info visualization course which required us to submit three visualization projects over the course of the semester to be programmed in Processing. For one of my projects, I chose to log the timings of my commute by Calgary Transit as data to visualize. Since the course started in the fall and is to last until the end of this year, I felt that it would be pretty interesting to see how the timings would change once winter rolls around as it can cold and a lot of snow can hit the city during the winter, or not. When I first began collecting my data, I began logging my times in a notebook.

However, since I intended for this one to be my final project, I wasn’t keen on doing it this way for the long haul. Having to fiddle around with a notebook during transfers and a stopwatch at the same time was not ideal. I was a computer science student for crying out loud…so I programmed an app. My iPhone app for logging my commute: Commute Logger The app streamlines how I log my time by providing me with five buttons I need to push at each point in my commute. Beyond needing less interaction on my part to log my time, having produced an app such as this actually benefits my data collection process in three ways:

The timing points are more accurate compared to the stopwatch I was using. Duration calculations between the different timing points are automated. All my data gets collected in a format (CSV) I need for when I have to visualize it. No more transcribing from my notebook at the end of the day!

I programmed it over the course of one evening so the code is less than ideal, however in the case that someone might find code for an app like this useful and want to repurpose it for something else, I’ve made it available on Github – so feel free to fork it! Related PostBBM Probably Won’t Be Available to iPhone/AndroidNext Stop: An iPhone App for Calgary TransitiPhone has a Huge Market Share in CanadaiPhone Specific FaviconJailbreaking & Unlocking 1st Gen iPhone on 2.0.2

]]>
Thu, 20 Oct 2011 02:23:00 +0000 http://lifestream.gosammy.com/items/view/2161/commute-logger
Next Stop: An iPhone App for Calgary Transit http://lifestream.gosammy.com/items/view/1426/next-stop-an-iphone-app-for-calgary-transit

For many months now, I’ve been working with the guys at Mediumrare on an iPhone app to help look up upcoming bus and train times. It’s been a long journey and we left Calgarians a little taste of what’s to come on our company blog, as well as a little demo at DemoCamp. However, last week we finally wrapped things up and submitted version 1.0 to Apple. While the app is waiting to be reviewed for approval, I thought I could give a peek into what it was like to develop my first iPhone app. A Functional Prototype Goes A Long Way

This summer, I decided to try my hand at iPhone app development. An opportunity arose when we were playing around with the idea to make a more friendlier website to look up bus times. Although creating a website could have been translated into a mobile version, I thought it would be fun to experiment and see if I could come up with a native iPhone app. I spent a couple many hours delving into Objective-C. I had some basic experience working with C++ in a 1st year computer science course at the U of C, but coming from that and mostly working with Java in other courses, I have to say that the syntax initially comes off as quirky. Eventually though, it was just another language that you get used to (although it helps if you have a background in working with C++). After a little over a month, I had a functioning prototype. Although it had some rough spots, the prototype did what it was supposed to do by essentially doing the equivalent of filling out the Next Bus/CTrain form on the front page of the Calgary Transit website, grabbing the responding web page’s HTML, parsing it to grab the needed data and displaying it to you.

After getting in touch with the right people, I was able to demo the prototype to some employees of Calgary Transit and the City of Calgary. At the time, a public feed of Calgary Transit’s bus times data was not available and the methods in which I got the data for the prototype went against the terms of service on Calgary Transit’s website. Thankfully after meeting with them and waiting it out, Calgary Transit finally exported their data in the Google Transit Feed Specification which we were able to use legitimately in an iPhone application. A Re-do Although we could have easily just changed the methods in the application on how it grabbed the data to the new stuff, Leigh and Bryan proposed some fantastic redesigns which made the app look much more polished. I too decided to re-do things by rewriting the entire application. The prototype was mostly mashed up pieces of sample code I found from Apple’s developer resources and other various iPhone tutorial sites. I started with a new direction, leveraging the Three20 framework — the same framework which powers Facebook’s iPhone app. By basing the app on the Three20 framework, I was able to utilize some neat features such as:

An inline browser (so that clicking on a link in the twitter feed wouldn’t kick you out of the app) URL based navigation (this feature made transitioning between controllers feel more like a webapp — even allowing you to pass parameters in the URL) A global stylesheet (you’re able to define styles such as colours and fonts in one file, much like the way CSS works) A JSON library (parsing JSON for the twitter feed and bus times was made easier because of this)

Current Status As of this post, the app has already been submitted and is going through Apple’s app review process. In the version which we submitted, you will be able to:

Look up upcoming bus/train times using the 4-digit stop number See the last 5 recent tweets from Calgary Transit’s twitter account (makes it easy to see delays, especially in the recent snowy weather we’ve gotten these past two days) Add a stop to your favourites Rename a favourited stop Reorder your list of favourite stops

Based on other developer’s experiences, our app should be hitting the app store in about a week now. If you’d like to be notified via email as soon as it shows up, sign up on our mailing list at http://calgarytransitschedule.com. Related PostiPhone has a Huge Market Share in CanadaiPhone Specific FaviconJailbreaking & Unlocking 1st Gen iPhone on 2.0.2Rogers Is FINALLY Bringing the iPhone to CanadaiPhone Web Concept Kit

]]>
Fri, 19 Nov 2010 03:52:00 +0000 http://lifestream.gosammy.com/items/view/1426/next-stop-an-iphone-app-for-calgary-transit
iPhone has an 86% Market Share in Canada http://lifestream.gosammy.com/items/view/1275/iphone-has-an-86-market-share-in-canada

While working at Mediumrare, we toyed around with some ideas of mobile apps and most of the time, it would be an idea for the iPhone. Now, as a developer, I loved the SDK that Apple prepared for Developers in order to create apps for iOS. However, it’s also important to understand your audience. Although Apple boasts about having a huge chunk of the pie in regards to mobile device market share, it shouldn’t be accepted at face value. Today I came across a very interesting presentation titled Rethinking the mobile web. It brings up points that we shouldn’t disregard other mobile devices just because the iPhone has taken North America by storm. The presentation states that globally the iPhone has

]]>
Mon, 13 Sep 2010 03:34:00 +0000 http://lifestream.gosammy.com/items/view/1275/iphone-has-an-86-market-share-in-canada
40 More Pixel-Perfect iPhone App Interfaces | iPhone.AppStorm http://lifestream.gosammy.com/items/view/1092/40-more-pixel-perfect-iphone-app-interfaces-iphoneappstorm ]]> Wed, 14 Jul 2010 07:57:00 +0000 http://lifestream.gosammy.com/items/view/1092/40-more-pixel-perfect-iphone-app-interfaces-iphoneappstorm iPhone on Rails and ObjectiveResource; Making communication between the ... http://lifestream.gosammy.com/items/view/900/iphone-on-rails-and-objectiveresource-making-communication-between-the

iPhone app framework for interacting with Rails apps

]]>
Wed, 17 Mar 2010 15:24:00 +0000 http://lifestream.gosammy.com/items/view/900/iphone-on-rails-and-objectiveresource-making-communication-between-the
joehewitt's three20 at master - GitHub http://lifestream.gosammy.com/items/view/40/joehewitts-three20-at-master-github

facebook iphone app open sourced

]]>
Tue, 24 Mar 2009 03:45:00 +0000 http://lifestream.gosammy.com/items/view/40/joehewitts-three20-at-master-github
iPhone Specific Favicon http://lifestream.gosammy.com/items/view/96/iphone-specific-favicon

Earlier this week, Google released a mobile version of Gmail Tasks which could be accessed on the iPhone/iPod touch or an Android device as its internet browser is also WebKit based. I thought it was great that Google allowed us to manage our tasklist previously only accessible through Gmail or a Google Gadget on the go now - but was pleasantly surprised at the attention to detail when you added the site to your Home screen on the iPhone:

How did Google specify this iPhone specific icon?

Getting your site to have this “iPhone specific favicon” was just as simple as applying a regular favicon. To do so, just insert a tag like so in the <head> section of your markup:

<link rel=“apple-touch-icon” href=“PATH_TO_ICON_HERE” />

Obviously, just replace “PATH_TO_ICON_HERE” with an image path and you’re all set! To keep things to spec, be sure to design your icon in a 57×57 pixel canvas and export it to PNG format when finished. If you’d like a sample to work with, why not check out the tasks icon Google uses? Related PostJailbreaking & Unlocking 1st Gen iPhone on 2.0.2Rogers Is FINALLY Bringing the iPhone to CanadaRumor: iPhone Coming to Canada Jan/Feb 2008iPhone Web Concept KitiPhone Rate Plans Revealed. What’s in Store for Canada?

]]>
Thu, 05 Feb 2009 00:49:00 +0000 http://lifestream.gosammy.com/items/view/96/iphone-specific-favicon
How did Google specify this iPhone specific tasks icon? http://lifestream.gosammy.com/items/view/71/how-did-google-specify-this-iphone-specific-tasks-icon

Senmu

It's about as simple as applying a regular favicon to your site http://www.gosammy.com/2009/02/04/iphone-specific-favicon/

]]>
Thu, 05 Feb 2009 00:39:00 +0000 http://lifestream.gosammy.com/items/view/71/how-did-google-specify-this-iphone-specific-tasks-icon
Jailbreaking & Unlocking 1st Gen iPhone on 2.0.2 http://lifestream.gosammy.com/items/view/101/jailbreaking-amp-unlocking-1st-gen-iphone-on-202

Warning: The following only applies to non-3G iPhones. 3G iPhones running 2.0+ firmware cannot be fully unlocked yet (meaning that you can only use it on official carriers for now). They can be jailbroken though, but it is your responsibility to research how to do so as this guide only applies to 1st gen iPhones! Also with the upcoming release of 2.1, I am not sure if QuickPwn will work with 2.1 yet. Please use this guide only with 2.0.2. This guide also only covers OSX specific software for the first essential step. An alternative Windows guide can be found at macgeekblog. Skip to guide One day I received a newsletter from eBay trying to persuade me into buying some summer gifts. On that newsletter was a link to some iPhone listings and by chance, I came across a listing for an unlocked 1st gen iPhone running 1.1.4 firmware. The bidding stayed at $200 for days so I figured I’d watch it. Near the end, it still stayed the same and I figured it didn’t get many hits because it was listed as an “I Phone” whereas people would probably be searching for an “iphone”. Regardless, I won the auction and now had an iPhone. Wanting to upgrade it to the newest firmware, I searched for hours on methods to use while still keeping it unlocked. Through blog postings and forum threads, I found a way to achieve it so I had an iPhone running 2.0.2 with the new app store functionality while still being able to install unofficial apps through Cydia, and also was able to make phone calls on the Rogers network. “Pwning” At first, I had absolutely no clue how I was going to run 2.0.2 while keeping the phone in an unlocked state. I first looked into ZiPhone as that got some exposure on digg but later found out that it did not support 2.0.2 yet. Through some hints I found another program called QuickPwn which would do half of what I needed. What QuickPwn will do is what is apparently termed, “pwning” your phone. When your phone is “pwned”, it is for the most part, in an unlocked state with the exception that you cannot make phone calls on an unofficial carrier…but don’t worry, BootNeuter will fix that. The first thing you need to do first before pwning your phone, is to get your phone to the official 2.0.2 firmware first. You can do this by plugging your iPhone into your Mac and then doing an update through iTunes. (Note: as of this post, 2.0.2 is the newest firmware. I am not sure if QuickPwn will still work on future firmware releases).

After the update is done, you’ll get this

After iTunes updates/restores your phone to 2.0.2, you can now run QuickPwn. If your iPhone is not connected to your mac (it should already be since you just updated/restored it through iTunes), QuickPwn will present you with the following prompt:

Connect your iPhone if it’s not plugged into your mac already

Once QuickPwn recognizes your iPhone, it will start doing its thing…

QuickPwn does its thing

Later QuickPwn will ask you to push some buttons on your iPhone that will need to be carefully timed. Just follow the onscreen instructions.

After, your iPhone will reboot and iTunes will popup the following error. Do not worry about it.

QuickPwn will then reengage a connection with the iPhone and then iTunes will present another popup.

QuickPwn will do its thing again and send files to your iPhone:

When the progress bar nears the end, QuickPwn will give the following popup:

Do not press “OK” because when your iPhone reboots at the end, QuickPwn will start running the entire process again. After your iPhone reboots you will notice that it boots up with a pineapple logo (QuickPwn) rather than the original Apple logo:

However, iTunes will now recognize your iPhone

At this point, you can start doing all the synching you want, but if you find that you cannot make/receive phone calls, read on… Fully Unlock the Phone With BootNeuter To be able to receive/make phone calls, you will need to download an application called BootNeuter which can be downloaded through Cydia (already installed via QuickPwn). Below are the series of steps you would need to go through in order to obtain BootNeuter:

Open the Cydia app:

Select the Search option at the bottom:

Search for BootNeuter and once found, select it:

Press Install:

Confirm the Install:

Once BootNeuter is done installing, open it and apply the following settings:

Neuter: ON FakeBlank: OFF Unlock: On

Your iPhone might need to reboot, but afterwards, try making a call — it should work! Applications From the App Store Crash Upon Launch This is actually a bug of the 2.0.2 firmware (which might have been fixed with the recent 2.0.3 release but I’m not sure if QuickPwn will work with 2.0.3 yet). ilikemyiphone.com released a solution to this problem. Related PostiPhone Specific FaviconRogers Is FINALLY Bringing the iPhone to CanadaRumor: iPhone Coming to Canada Jan/Feb 2008iPhone Web Concept KitiPhone Rate Plans Revealed. What’s in Store for Canada?

]]>
Thu, 11 Sep 2008 06:33:00 +0000 http://lifestream.gosammy.com/items/view/101/jailbreaking-amp-unlocking-1st-gen-iphone-on-202