Tonight, I went to an Android meetup hosted at the Google office above Chelsea Market. It's not my first meetup there, but it was interesting because the guest speaker was Mark Murphy. I read his Android development books a year ago and was quite impressed. When you purchase his books, you have access to an updated online version for a year after purchase. Plus his Four-To-Free Guarantee business model was neat (after four years or 4,000 published copies, a book edition is released under the Creative Commons license for free non-commercial distribution)
Anyways, the topic covered was "App Integration Strategies and Tactics". It could be summed up as this:
- What does your app really do?
- What permissions does your app ask for? (e.g. is it reading my contact list, is it accessing the Internet)
- Do you really need those permissions to accomplish what your app does?
- If it isn't absolutely critical, then make the additional features as a plugin (and request permissions from the plugin)
- If you're using other programs to do something, then call implicit intents instead of explicit intents; this gives users a choice and is more reliable (e.g. a program might arbitrarily change their intent from com.williamqliu.mystuff to com.williamqliu.stuff causing the explicit intent to fail)
- If you're using other programs, use official APIs to integrate with your program
- Don't build your own class loader; it's too much work. Someone out there will do code injections and then use your permissions to do things that were not intended
I thought it was neat. I think that great programming is just as much an art form as painting or sculpting. If you ever read someone else's code, you understand just how different someone can write the same program both in efficiency and style. That said, I'm glad I'm not a programmer as my day job.
No comments:
Post a Comment