Archive for the ‘Apple’ Category
Bento
As you may know, my vision is all about giving people the power to create, access and share their data as they will.
Although I work at Microsoft, I love to see other companies making progress on technologies that I believe soundly support this vision.
Recently, I have been using a product by FileMaker (owned by Apple) called Bento.
There is both a Mac and iPhone version. You can sync your “database” (called a library in Bent0) between your Mac and iPhone. You can also share your libraries with any Mac on your local subnet – like iTunes – via Bonjour.
I could nitpick features I want and lament what I consider a powerful platform play Apple could execute on, but in general I have nothing but praise, great praise, for this product.
If you own an iPhone or a Mac, I really encourage you to check it out.
Great work Bento team!
Google Reader to Twitter (rdr2twt), Part II
Prereading: Google Reader to Twitter (rdr2twt)
In the interest of doing a simple comp for some other work I am doing, I decided to move this mere trifle to Google App Engine.
It took around 100 LOCs of Python code.
Observations:
- The local SDK environment (dev fabric in Azure-speak) is straightforward, did what is was supposed to do, and mostly stayed out of the way.
- Using whatever Python libraries I wanted was reasonable, although I had some issues with paths around the GData client (which I wanted to use for the Reader feed). I ended up using ElementTree and urlfetch directly, not a big deal.
- I didn’t like the fact the the SDK environment didn’t run cron jobs, but I did like two things. First, it told me that the configuration was right and when the job would have right. Second, cron just does supports HTTP GET, so it makes trivial to test.
- The online management environment is quite nice. I like the analytics a great deal for example.
- TextMate is hands down the best text editor on the Mac. This is not a GAE observation, but I want to the Intellipad team to read this and get motivated by the fact that I am using a different text editor.
I am thinking about adding more to see how this scales with application complexity. Two ideas are to make rdr2twt a public service (needs UI, etc.) or to use this as a prototype of some Infobus ideas that I have. Still thinking on it.
That said, this has to compete with the siren call of the iPhone. I am getting a lot of pressure to use the basis of LocoFoto as launching point for a couple of different apps.
Locofoto 1.1
Locofoto 1.1 was released last week.
It only took ~5 days to get the minor version updated.
In this release, there is a Locofoto settings panel in the Settings app that let’s you control how may photos to view in the table.
In addition, startup performance is improved.
What is really interesting to see is the number of photos from all over the world that are being uploaded.
Had to delete some of them, but they certainly interesting…
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305227469&mt=8
LocoFoto (the iPhone app) is released
Seven days after submitting to Apple, the application is now approved and available for download on the AppStore.
For context, this was an idea SNinja had and I decided to write the app as a little experiment to iPhone development in a “real” way. My goal was chiefly learning and to provide something that maybe my friends and family would like to mess around this — but who knows. You can read more on the journey from Coding, Stabilizing, End Game and Releasing.
So what does the application do?
LocoFoto detects your current location and shows you pictures taken previously at the same location.
LocoFoto uses a number of photo services including Flickr and LocoFoto’s own photo service to provide a wide range of location- specific photos.
LocoFoto lets you to take geo-tagged pictures using the iPhone’s camera and add them to the list of photos at your current location.
iPod Touch users can upload pictures from their photo library, adding them to the photos for the current location.
LocoFoto automatically updates the photo list as you change location providing an exciting way to explore new locations and see familiar places in a different light.
Screenshots?



If you have an iPhone or iPod Touch, you can download the app from http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305227469
Version 1.1 is already submitted to the store (I want to see how long an update takes — and I have a fix to increase startup perf), so you may see a little update badge soon.
iPhone application submitted to AppStore
On 2009/02/11 I submitted my iPhone applicaton to the AppStore via iTunes Connect.
It is still “In Review”.
Continuing my lessons learned…
XCode has a very severe bug (or feature — eye of the beholder) with code signing of iPhone applications. This was by far the most painful part of the entire process. As I said before, I would have happily jumped into a Sarlacc Pit to end my suffering. Getting the app signed with the final provisioning profile merely reconfirmed my earlier findings.
That said, I found a workaround that seems to fix any such issues without fail. You open up the project file and manually replace the UUIDs for provisioning profile you want to use.
Other than that, the uploading process was straightforward — provide the application metadata, a few icons, the binary and then wait.
And wait.
And wait.
Perfection has its price…
Done with the iPhone application
I am declaring the iPhone application that I am writing “done”.
It has actually been done for about a week, but I have been waiting on licensing/legal issue to clear before I post the application to Apple to see if they will approved it.
I hope to clear that hurdle this weekend or early next week.
I have no idea how long it is going to take for Apple to review and approved it, but I am excited to see how people like it.
I will be perfectly happy if just my friends and family enjoy the application, but who knows, there could be a hit here.
I did learn a couple of things in the “beta” period:
- As far as I can tell, the iPhone has no mechanism to tell you if you can connect to the network (is a 3G or Wifi connection available?). There are ways to determine if you can connect to a given address if you are already connected to the network. I mistakingly thought these APIs would “do the right thing”, but I was getting the wrong result when the application was run on an iPhone without push email turned on or just after airplane mode was turned off. The workaround is simple, see if you can connect to a well-known address and catch the exception. I would love to learn of a cleaner way to do this, so if you know, please share.
- The Settings.bundle is a wonderful feature to declaratively build a “control” that integrates with the Settings application in a first class way. I used this feature to create the equivalent of the Calculator Construction Set for SNinja to help me tune the application.
OmniFocus for the iPhone
I purchased the iPhone version of OmniFocus today. It is the most expensive application that I have purchased for the iPhone ($19.99 if I recall correctly).
Thus far, it appears worth the cost, but time will tell. I continually challenge the processes that I use to run my life, always finding them wanting in some regard eventually. If I am still using this in 90 days, I will deem it a “fair trade“.
The application follows a variant of GTD which I have never tried before, although I have listened the audiobook. The GTD system seems effective in theory, I just never had an opportunity (or the desire frankly) to put it unto action. I no longer have any excuse.
One of the nice things about the OmniFocus is a fully functional Mac OS X version that it can sync with iPhone version over Bonjour. Both versions of the application support WebDAV, so I am considering setting up my Apache server to serve as the sync point between them.
Speaking of WebDAV, this is the first app that I have seen have first class support for this protocol in some time. I had assumed developers would be moving to APP or something else.
iPhone SDK 2.2.1 is out
How do you know you are writting a real iPhone app?
#if TARGET_IPHONE_SIMULATOR
//do something
#else
//do the same thing as above, but different
#endif
The iPhoto application enters beta
The iPhone application that I am writing entered Beta today.
Our Beta is going to be small, based on the Ad Hoc distribution limitation of 100 users.
I hope we can get it on the App Store in February sometime.
A couple of things that I have learning writing this app:
Cons: Mainly nits
- XML support on the iPhone could use some help. It has a SAX-like API that I had to wrap.
- I do not like the split between @property and @synthesize. I think would be so much clear to combine them. I know why they are not, but from a productivity standpoint one construct would have made me happier.
- I really, really wanted anonymous delegates/methods.
Pros: Outweighed the cons significantly
- UIViewControllers are incredible productivity tools on the iPhone. I don’t believe we have anything close to this in the .Net Framework, but I could be wrong.
- UIImagePickerController rocks, although there seems to be a bug where you have to be careful with number that you allocate, so it is better to just cache one.
- CLLocationManager rocks, although it seems to some times pass in my previous location, even after I have travelled a long distance since the last time it was enabled.
- I love Objective-C and Cocoa more each day (modulo the language nits above)