A few hours ago, I had a frustrating experience with Yahoo! Go. It claims to be the best Interent experience on the phone! It took several minutes to sign me in (the first time though, the subsequent sigins were faster), and half the widgets didnt work. It didnt have Yahoo! Messenger. That is what brought me to write a list of things that I need from my ideal mobile application. Do note that this list is platform or language agnostic, if you want me (and other users) to use your mobile application, think about these:
- Easy and Instant Sign-in: If the application wants me to sign-in, do it once, do it fast, do it in the background (or at phone startup) if you can and get over with it. I dont want to see the sign-in screen ever again.
- Cache off-line data: Use the network only to fetch data that changes. If you are downloading the same list (or file) over and over again, it is better to cache it. If you are writing on J2Me, use the record store. If you are a browser app, use appropriate cache-control directives.
- Dont drain my battery. This covers a lot of things like not using up CPU, not using too much data (think compression or tokenization, but be aware of the CPU implications), etc. But the bottom-line is, I need to be able to use my phone to talk, when I need it. If your application interferes with it, it will get uninstalled.
- Snappy UI. As easy it may sound, this is actually pretty hard. But the application has to visually appeal the UI. So, things like screen transitions and list scrolling need extra attention. This is also tied to memory usage: if the application is using up too much memory, it adverse affects the performance (even for a browser based app) because the memory allocator has to work overtime during low memory situations. Good wait animations go a long way in providing an illusion of snapyness.
- Background applications. If the application cant be paused when I am on a call (or checking out the photos) then it wont be useful for me. I am a (at least, I claim to be) a multi-tasker.
Coming soon: my ideal mobile development platform. I could go on with my frustrations with the current mobile development tools.