Skip to main content

Mobomo webinars-now on demand! | learn more.

In the past week I've jumped head-first into Android development for a new Intridea project. This is my first time doing any real Android development as well as my first jump back to Java since I graduated from college. I thought it might be interesting to catalog some of my experiences developing for the platform, so here they are:

Android is built on an "Intents" system. When you want the user to perform some kind of common action, you create an intent for it and activate that intent. Different applications can hook into the same intents, allowing the user to completely customize how they handle a given action.Things I Loved

Wow, what a brilliant system. Android is built from the ground up for insane levels of interoperability between applications. It took no time at all to get a basic QR code scanning process flowing thanks to intents, and the same went for composing e-mails and opening web pages. Literally couldn't be simpler.

Activities: The base unit of an Android application is an activity. An Activity class is what holds the context for your application as well as manages on-screen events and more. One application may have many activities, divided up logically based on user actions.

Once I was able to wrap my head around the idea that any given "screen" is really more like an "activity" that the user performs, the logic of the application design really fell into place. I think this is a perfect level of abstraction for a mobile platform, and it really made it easy to figure out where to draw the line between one screen and the next.

On-Phone Debugging: My mouth actually dropped open the first time I plugged my Nexus One in and hit "Run" in Eclipse. In just 5-10 seconds my app was launching natively on my phone for me to test. Not only that, but I was still able to see logs and uncaught exceptions as the program ran. Running on the phone is also lots faster than running in the emulator.

Resources and NineScale: Google has come up with a very elegant solution to the idea of handling binary and other resources in Android projects. All of the resources in a directory are pre-compiled into a big reference file called R.java that simply contains access to every menu, image, string, and view that you've created for the application. This makes it so easy to transition between referencing resources in the XML and the code, because it all uses a similar syntax. Great stuff.

When designing views, you will often want to have image-based backgrounds that intelligently stretch to fit their contents. This is called various things in different platforms and tools (NinePatch, NineScale, 9-Slice, etc.). Google's implementation is very simple and can be done without extra plugins from any image editor (it's just a 1px border around an ordinary .png file). Once again, very cleverly designed.

The Overall Architecture: Android overall just feels like it was really put together with a lot of thought and care. Everything fits together really well and even people without hardly any desktop or previous mobile application development experience can pick it up relatively quickly. Also, the documentation is pretty extensive (though it would be great to have an even more exhaustive list of code examples of various aspects of the API).

When you're used to viewing changes to your application just by clicking "Refresh" it can definitely feel like a waste of time to have to compile and run the app. There's absolutely nothing that can really be done about this (it is a native app, after all) and Google has gone out of their way to make the process feel as responsive as possible, but it's still an unwelcome break in the development cycle for someone used to working on web apps.Things I Didn't Love Quite So Much

Where's My CSS? I'm guessing that some people will disagree with me here, but wow did I ever miss CSS when building an Android application. CSS makes it so easy to rapidly and iteratively style things. Android has a few ways to style things that definitely help over repetitive copy and paste XML attributes, but the expressiveness and power of CSS is sorely missing from building interfaces in Android.

Exceptions: When running an application in the emulator or on the phone, I really wanted a clear and easy way to view stack traces. The LogCat view on Eclipse is the way to do this, but I found a few problems with it:

  1. The stack traces don't list the exception you're looking for at the top of the trace, but rather about half-way down. Takes a while to wade through and figure out what to look at.
  2. When I tried to use the debugger, I never got any useful output or link-to-line type help that I expected from a fully integrated IDE. Maybe I was using it wrong, but it didn't help me out much.

Java: OK, OK, could take some flak for this one, but after developing full-time with Ruby for more than three years now, going back to Java feels like an unbearable chore. There's so much boilerplate code and I found myself really missing the simple, expressive, concise idioms of Ruby. Maybe once Mirah gets a little more mature I can at least ease that part of the Android experience.

SQLite: I know that it's the go-to solution for small, simple storage, but why on earth do mobile platforms have schema-driven data stores by default? What a ridiculously square peg to pound into the round hole of mobile data persistence. You know what the default data store for mobile ought to look like? Redis. If I had the simple data structure support provided in Redis (key-value, lists, and sets with simple combinatorial commands), I wouldn't need anything more for 99.9% of the applications I can think of. SQL is an awful, terrible fit for mobile and I hope that one day someone realizes it.

I'm glad to see that CouchDB is trying to disrupt this space a little, and I hope that the disruption continues with more datastores and more choices being available for mobile development.

Wrapping Up

It was certainly an interesting week and I've been learning a lot. Android development is starting to come more naturally (looking things up on the API docs maybe every 5 minutes instead of every 30 seconds) and I'm actually starting to enjoy myself. It's really satisfying building something that I can immediately run on my Nexus One, and I definitely look forward to working more with the platform in the future.

That being said, I don't think I would choose to develop for mobile applications as my primary focus. While mobile development is certainly rapid compared to old-school desktop development, I still don't think anything can match the ease and speed with which web applications can be developed. Since I'm ultimately more interested in ideas and solving the big-picture puzzles of applications than the low-level implementation details, web is still the place to be for me (for now).

And so we've reached the end of this rather wordy spiel; hopefully if you're a web developer you can read this and get some idea of what it would be like to dive into mobile development, and if you're already a mobile developer maybe you can tell me how I'm all wrong about everything I've just written. And maybe, just maybe, if you work for Google you'll implement Redis as the primary datastore for Android 3.0. Hey, a guy can hope, can't he?

Categories
Author

If you have both a car and an iPhone, then you might be as excited as we are that Car Finder 2.0 is now available in the App Store! Car Finder 2.0 is chock-full of additional features and makes finding your car easier and more accurate than ever. One of the best new features of Car Finder 2.0 is Parking Meter Notification. When you mark the location of your car, you have the choice of setting a time for when your parking meter will expire and then be alerted when your parking meter is about to run out. Also, if you don't want to use the augmented reality view to find your car, there's now an option to just view your car on a regular map.

 

For those of you who haven't heard of Car Finder, it is a super smart mobile app that uses augmented reality to help you find where you parked your car. Car Finder has been featured in many publications such as, Gizmodo, Consumer Reports, Wired Magazine, Cult of Mac, and the The Unofficial Apple Weblog. Just last week, Consumer Reports named Car Finder one of the must have smart phone applications for smart drivers.

 

Car Finder relies on the GPS and compass in your iPhone to accurately mark the location of your vehicle. You can see the accuracy of your GPS signal in real time and you will be alerted when you are trying to set the location of your car when the accuracy is not optimal. We use augmented reality to overlay real-time information about where your car is parked while you look at the world around you with your iPhone.

Car Finder 2.0 is available now in the App Store for $0.99. Car Finder was built by the talented mobile dev team at Intridea. Intridea offers services for application development on all major mobile platforms, including iPhone, IPad, Android, BlackBerry, and webOS. If you need your mobile idea brought to life, contact us for a quote.

Categories
Author

Last month Intridea released Oil Reporter, a mobile application for iPhone and Android devices. Oil Reporter is currently being used by NGO's and citizens on the ground to report affected areas of the spill, including the impact to wildlife, the presence of wetlands, and the amount of oil that is present. All of the data collected by Oil Reporter users is publicly available on our website at OilReporter.org.

 

Now we've gone one step further and created a new Oil Reporter application specifically for the iPad. Oil Reporter for iPad enables you to see the latest reports as soon as they come in. You can view a detailed mapping of all of the submitted reports along with an easy-to-read list. You can even drill down and view detailed information about each individual report.

 

The code has also been open sourced on GitHub, so feel free to help us add some great new features to this application that we can push out in later updates. Oil Reporter for iPad is available right now and is completely free. The crowdsourced data gets analyzed by groups that can point relief efforts at the distressed areas according to the urgent reports that are filed with Oil Reporter. Start using it today!

 

Categories
Author

Google’s Android has seen an incredible rise in popularity since its first handset was launched less than two years ago. Google has worked hard to earn that popularity, regularly releasing fantastic new improvements to the platform in the form of Donut, Eclaire, and now Froyo. Unfortunately, many users of the Android ecosystem won’t see these improvements for years, if at all. The reason? Manufacturers of Android handsets are building custom versions of the OS to add eye-candy and make the UI seem more attractive, at the expense of upgradeability.

HTC has its Sense UI and Motorola has MOTOBLUR. Samsung and Sony have also thrown their hats into the “heavily modified UI” ring. While these packages may serve to help differentiate from the competition, they are hammering the Android ecosystem by causing fragmentation (and yes, I do think that’s the right word). But it isn’t all their fault. One can certainly understand how, when competing against the likes of the iPhone, manufacturers would want to “pretty up” the Android experience. So I’ve got a few words for these OEMs, and Google as well.

Dear Google

I’m really happy that you’re ‘laser focused’ on the user experience for the next release. Now that you’ve got it humming at lightning speed with Froyo, it’s time to add some polish. Fantastic. But making a better stock UI isn’t the only thing that needs to happen to prevent this fragmentation.

You should be doing everything you can to prevent version fragmentation because it’s hurting developers and consumers. When people with G1s see “official Android Twitter client released” but can’t download it, they’ll get frustrated. They don’t know or care about the fact that the G1’s limited internal storage means that it can’t get the next upgrade, they only care that they’re supposed to have an Android but they can’t get the software they want.

Here’s my advice: take the feature lists of Sense and MOTOBLUR et al as a laundry list of areas where your API needs more robustness. If the capabilities of Sense and MOTOBLUR were exposed at an application level, this problem would simply disappear. You’ve built your platform to be backwards-compatible; if HTC wants to build a “Sense UI” app that changes the appearance of the UI and adds a bunch of widgets, and they want to make that only available on their handsets, more power to them. When the next version of Android comes out, it’ll all work seamlessly because they’ve simply built an app, like any other developer.

So keep up the good work on Gingerbread, I’m looking forward to the UI improvements. But also make your UI reachable by applications, provide hooks into the very guts of Android so that manufacturers and developers alike can really “make it their own” without building a custom ROM.

Dear HTC/Motorola/Samsung/Etc.

Thank you for making Android handsets. I’m a huge supporter of the platform, and the level of competition and innovation on Android phones has been amazing. Keep it up! But you’re doing yourselves a disservice by building these custom UIs that inhibit the Android version upgrade process.

Google has huge teams of people working to continuously upgrade the Android experience. You get the fruits of this labor 100% for free. I understand that as a handset manufacturer the idea of upgradeable phones isn’t necessarily the most appealing: if people can upgrade the software on their phones, maybe they won’t want a new one in 2 years! But trust me, you’ve shown that you’ll make the hardware good enough that people will want new phones.

Instead of locking down a handset to a specific Android version, create an unbeatable suite of applications that comes pre-loaded on your phone. Work on top of, instead of within, the Android operating system. Then you can leverage all of Google’s work and all of your own work to provide customers with a great experience. Work with Google to add pieces of API that will help you provide all of the value you want to provide; I’m sure Google would be happy to help as best it can.

Also, while I’m at it, can one of you please create a 4.3" handset running the stock Froyo UI sometime before November? I’d love to get a big-screen phone when my contract’s up, but I don’t know that I can handle dealing with these custom UI jobs. It’s just not for me.

Unicorns and Rainbows

I think that Android is a very important project that came along at just the right time. It has applications far beyond mobile handsets and we’ll begin seeing Android in cars, tablets, and more in the very near future. This will mean even more work will be poured into the Android ecosystem creating greater and greater benefits for everyone from consumers to handset manufacturers. All that needs to happen to take advantage of those benefits is for Google to help handset manufacturers free themselves of the idea that they need to “make it their own”.

I’m looking forward to the next 40 Android phones, and the 100 after that. I truly think that Android is going to dominate the mobile market five years from now (Apple will still have about the same piece of the pie, but Android will have displaced RIM and Microsoft entirely). So keep up the good work, but how about we all just get along in the meantime.

Categories
Author

“Mashable is excited to launch our new iPad app and we think Intridea has done a fantastic job. There’s high demand for Mashable on the iPad, and we think our readers will be as excited as we are about the launch”, Pete Cashmore, CEO of Mashable, Inc.

Mashable is one of the world’s largest blogs focused exclusively on Web 2.0 and Social Media news, with more than 15 million monthly pageviews. We were very excited when approached to develop their iPad application. Mashable already had a very popular iPhone application and it was our job to figure out the best way to take advantage of the iPad’s increased real-estate and new user interface to be able to deliver something that all of their readers would enjoy.

One of the best things about the iPad is that it’s a wonderful device for reading. Whether you’re reading the news, a book, or a comic, the increased screen size makes the experience much more enjoyable. We wanted to make reading the latest articles on Mashable just as enjoyable. Not only can you see the latest news from all of their different news channels, but the articles themselves are formatted in a way that makes them very easy to read.

There are many other applications that allow you to read news on the iPad, but none of them take into account the way that you hold the iPad. Normally, when you hold the iPad with two hands, your thumbs are able to touch the screen. Other iPad applications have very un-intuitive ways of jumping to the next article by having small buttons on either the top left or top right corner of the window. We took into account the way that people hold their iPads and enabled them to easily go from article to article just by tapping on either side of the window.

Reading the latest news from Mashable is just some of what you can do with the application. With Mashable! for iPad, you can also share what you’re reading in many different ways. You can e-mail the article to a friend, share it on Twitter or Facebook, and you can also save it to Read Later on Instapaper.

Mashable! for iPad is now available for free on the App Store. Also, you can expect some exciting new features for Mashable! for iPad soon. There are some great new features that are in the works.

Intridea offers services for application development on all major mobile platforms, which include iPad, iPhone, Android, BlackBerry, and Palm webOS. If you need help with your mobile application feel free to contact us for a quote.

Categories
Author

This was my second time speaking and attending the MobileX conference. Last year there was one event that was held in Lexington, Ky. This year the MobileX Conference has hit the road with events in Columbus, Ohio, Chicago, Ill., Nashville, Tenn., and Lexington again. You can view their whole schedule at mobilexconference.org. The MobileX Conference in Nashville had a pretty good turnout and was well received by those who attended.

 

Noah Kagan, Founder of kickflip, Inc (makers of GetGambit.com), who also spent time as the CMO at Mint.com and was the original creator of Facebook Mobile, gave the opening keynote. Noah's talk was titled "Making Money in Mobile - It's not just the iPhone", which was very informative and entertaining. It definitely set the mood for the rest of the event.

The conference was broken out into three separate tracks, "Entrepreneur/Investor," "Technical," and "Mobile Music." There was also an "iPhone Beginner" course offered at the same time. My first talk was on the topic of "Building Native Apps Using Titanium Mobile".

I went over Appcelerator's Titanium Mobile platform and how you could build truly native applications for iPhone and Android just using JavaScript. I event went into detail about how we built certain elements of the iPhone version of Grub.it.

Sam Soffes from Tasteful Works had a talk titled "Reuse Your Code", which went over how to create static libraries and bundles for your iPhone or iPad application. Nick Holland from Mobile Assassins had a great talk titled "What I Wish I Knew Before I Started a Mobile Gaming Company".

IMG_5223 Jackson Miller, Brendan Lim, Sam Soffes at Mobile Panel

Another great thing about this conference was that there were panel sessions throughout the day. These panels allowed the audience to ask specific questions regarding a topic and get all of our opinions. I was fortunate enough to be on one panel with Jackson Miller and Sam Soffes about native applications versus the mobile web, which actually didn't get all that heated since we were mostly on the same side. We took questions from the moderator and answered questions from the audience and I felt like it ended up being pretty informative.

Sam Soffes - Reuse Your Code IMG_5216

Sadly, Michael Mettler from AdCru and former Product Manager at Admob, could not make it to the event. I was asked at the last minute to do the closing keynote that I did at last year's MobileX conference in his place. Instead of updating my talk from last year, I decided to do a whole new talk around the current state of mobile and why it is such a great time for us as developers, entrepreneurs, and investors to be in mobile right now. My closing keynote talk was titled "I'm Mobile, Who's Coming With Me", and I believe it went pretty well.

The MobileX Conference in Nashville was a great event. I had a great time and judging by the tweets I can tell that I wasn't the only one. The MobileX Conference in Lexington, KY kicks off on April 16, 2010 and I'll be there speaking again. If you're in the area and would love to hear about great things in mobile, I highly suggest that you attend.

Categories
Author

On the heels of U.S. Secretary of State Hillary Rodham Clinton's Net Freedom speech, Intridea was delighted to receive notification Apple had approved the official iPhone application we developed for Voice of America's (VOA) Persian News Network (PNN).

This new application gives Iranians a unique opportunity to get the latest news on their mobile devices and to share with the world the news as it happens in their country," said Acting PNN Director Alex Belida. "It is a groundbreaking way to expand our reach inside Iran and deepen our relationship with a key VOA audience."

Following Iran's troubling elections in the Summer of 2009, the Senate aptly passed the Victims of Iranian Censorship (VOICE) Act, which provided much needed funding and support to the Broadcasting Board of Governors to expand Farsi language broadcasting into Iran by the Voice of America's Persian News Network.

This application empowers Iranians at a time when the government is staging a crackdown against opposition protesters, Mr. Belida said. As with the disputed elections [last] year, VOA's Persian service continues to be a leading source of news and information for Iranians.

In this video, Hamed Behravan, Sr. VOA Correspondent showcases the newly released mobile application to millions of Iranian television and web-based viewers, on his weekly Technology Roundup segment.

Built under the technical leadership of Brendan Lim, Intridea's Director of Mobile Solutions, the application is designed for iPhone and Android Devices, and features the ability to read the latest VOA News Stories and share them through Facebook, Twitter, or e-mail. Users can also keep up-to-date with the VOA PNN's Twitter feed (@voapnn). Additionally, "the application allows users to anonymously report news accompanied with either an image or video captured directly from their mobile device" says Lim; "enabling a new wave of citizen journalism."

Intridea is dedicated to supporting Gov 2.0 projects and programs that promote human rights, uphold democratic principles, and strengthen civil institutions. In the case of the VOA PNN App, we have been given an opportunity to create a platform that extends the Iranian people the freedom of speech --- in real-time.

Many important security measures were considered to operationally defeat or circumvent censorship and/or surveillance of content created, shared or stored by users. And with future guidance from the VOA & US State Department, Intridea plans to develop other sophisticated transmission techniques to counter the Iranian government's use of filtering systems, and general stranglehold of internet & mobile transmissions.

The VOA PNN application was built using Appcelerator's Titanium Mobile platform. Using Titanium Mobile, we were able to create an application for both, iPhone and Android, using just a single codebase. Also, Titanium Mobile allowed us to develop these native applications using only HTML, CSS, and JavsScript, which greatly reduced the amount of development time.

Here's how to get it:

On iPhone or iPod Touch
You can download it directly from the App Store. You can also find it by searching for 'VOA PNN'.

On jailbroken iPhone or iPod Touch
If you have a jailbroken iPhone, you can find the application through Cydia or Rock. The application is listed under the BigBoss source, which is included by default on both of these applications. Just do a search for 'VOA PNN' to install the application.

On Android
The application is listed under News & Media in the Android Marketplace. You can also search for 'VOA PNN' to install it.

The Android version features the same functionality as the iPhone version. However, since Google doesn't officially support the Farsi language, users who wish to use the app on their Android devices will have to add Farsi character support on their own. To install Farsi on your Android device, check the links below.

  • XDA Developers - http://forum.xda-developers.com/showthread.php?t=616384

Stay tuned for more.

Categories
Author

A new version of the Presently application has just been released for iPhone and is now available on the App Store. Presently for the iPhone is the best way to keep in touch with your co-workers where you're not in front of your computer. The new version of Presently brings a completely new application, developed using Appcelerator's Titanium Mobile platform, that is packed with many more features than the previous.

Below is a list of just some of the great new features that have been added to the latest version of Presently for iPhone.

The new version of Presently is now available for free on the App Store.

Categories
Author

We released Car Finder just over a week ago and the amount of attention we've received is much more than we could have ever anticipated. For those of you who don't know, Car Finder is an iPhone application that utilizes augmented reality to help you find where you parked your car. We use augmented reality to overlay real-time information about where your car is parked while you look through the camera view of your iPhone.

thugfinder
Note: Car Finder developer Brendan Lim and his brother (with the dollar) sold separately

Throughout this whole process we've noticed that the Twitter mentions that came after these news articles proved to play a huge part in Car Finder's success. Below are a list of a few articles that covered the release of Car Finder.

Wired UK
Save face with the Car Finder augmented reality app

The Unofficial Apple Weblog
Use Augmented Reality to Find Your Car

Autoblog
Latest auto iPhone app: Augmented reality parked car finder

Holy Kaw!
Can't find your car? There's an app for that. - Holy Kaw!

Cult of Mac
Car Finder iPhone App Uses Augmented Reality To Find Your Wheels

Boing Boing
Car Finder app for iPhone

Car Finder is available now on the App Store for $0.99. Intridea offers services for application development on all major mobile platforms, which include iPhone, Android, BlackBerry, and Palm webOS. If you need help with your mobile application feel free to contact us for a quote.

Categories
Author

If you’ve ever parked your vehicle in a large parking lot you’ve realized that it would be great to have something help you memorize where your car was. Intridea’s latest iPhone application, Car Finder, helps you do just that. Unlike the cookie-cutter car finding applications in the App Store, Car Finder helps you find your car using augmented reality.

Using the camera, A-GPS and the compass built into the iPhone 3GS, Car Finder allows you to find your car by positioning an overlay on top of a live view of what’s in front of you. Also, when you mark your car Car Finder allows you to set a note for your parking spot. This is particularly useful if you know what section you’re parked in or if the GPS is spotty in the location that your car is currently parked in.

Car Finder is available now on the App Store for $0.99. Intridea offers services for application development on all major mobile platforms, which include iPhone, Android, BlackBerry, and Palm webOS. If you need help with your mobile application feel free to contact us for a quote.

Categories
Author
Subscribe to Mobile