Lessons Learned Making Android Apps As A Side Project

Android Apps As A
Side Project
Lessons Learned After Two Years
Rand Graham
rmcore.com
Why Android?
● Ecosystem
● Your Background
● Self Contained
● Portfolio
● Create Value
rmcore.com
Always Check The App Store
● User Request
● Useful to You
● Fix Complaints
rmcore.com
Best Book To Get Started
● Up To Date
● Code Samples
● Office Hours
● Multiple Formats
● Perfect For Side Project
rmcore.com
Don’t Fear Design: Icons
rmcore.com
Minimal Design
● Use A Theme
● Use Action Bar
● Use Icons
● Style Text
● Style Buttons
rmcore.com
Talk To People
● Designer Referral
● ActionBarSherlock
● Feature Suggestions
● After Shipping: Users
rmcore.com
The Emulator Is Painful
Three Reasons
1. Paid Alternative Genymotion
2. Developers Don’t Use It
3. Microsoft Makes A Better One
rmcore.com
Always Test On A Device
● Emulator For Development
● Use eBay
rmcore.com
“Java is a belt fed 240G automatic weapon where sometimes the belt has
rounds, sometimes it doesn’t, and when it doesn’t during firing you get an
NullPointerException, the gun explodes and you die.” Bjorn Tipling source
That Time I Shipped A Crash Bug
● Sanitize User Input
“Also app crashes when trying to use decimal as em values
for input widths.”
rmcore.com
Sharing Is Easy
rmcore.com
What is a JAR?
Most Android libraries use Apache 2
rmcore.com
Some Favorites
● AChartEngine
● ColorPickerPreference
● aFileChooser
Android Security
● Cannot override the home button
o Make a home screen launcher
o Example: MobiLock Kiosk Lockdown
● Cannot send email directly
o Prevents device becoming a spam relay
rmcore.com
Android Fragmentation
Are the vast differences in possible screen
sizes a problem? Not so much.
rmcore.com
FUD
Actual
Best VCS For Side Project: Git
Bitbucket
Always use version
control
rmcore.com
Greatest Rewards
Evidence of Value Creation
“I used to pass around a pad and pen and then it would take me about a day
trying to read everyone’s handwriting, not easy. When I do figure it out, many
times emails bounced back because a letter was misread. The app makes
things error free.”
Happy Customers
“Fantastic! Thank you for the update! I really appreciate it!”
Portfolio
rmcore.com
Q/A
Questions?
rmcore.com
Keep In Touch
Check out my website at:
http://rmcore.com
Email: rdg at rmcore dot com
Twitter: @rdg_rmcore
rmcore.com
1 of 18

More Related Content

Featured(20)

How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC3.9K views
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy82.1K views
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
Alireza Esmikhani30.2K views
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking6.9K views
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.1K views
I Rock Therefore I Am. 20 Legendary Quotes from PrinceI Rock Therefore I Am. 20 Legendary Quotes from Prince
I Rock Therefore I Am. 20 Legendary Quotes from Prince
Empowered Presentations142.8K views
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views

Lessons Learned Making Android Apps As A Side Project

  • 1. Android Apps As A Side Project Lessons Learned After Two Years Rand Graham rmcore.com
  • 2. Why Android? ● Ecosystem ● Your Background ● Self Contained ● Portfolio ● Create Value rmcore.com
  • 3. Always Check The App Store ● User Request ● Useful to You ● Fix Complaints rmcore.com
  • 4. Best Book To Get Started ● Up To Date ● Code Samples ● Office Hours ● Multiple Formats ● Perfect For Side Project rmcore.com
  • 5. Don’t Fear Design: Icons rmcore.com
  • 6. Minimal Design ● Use A Theme ● Use Action Bar ● Use Icons ● Style Text ● Style Buttons rmcore.com
  • 7. Talk To People ● Designer Referral ● ActionBarSherlock ● Feature Suggestions ● After Shipping: Users rmcore.com
  • 8. The Emulator Is Painful Three Reasons 1. Paid Alternative Genymotion 2. Developers Don’t Use It 3. Microsoft Makes A Better One rmcore.com
  • 9. Always Test On A Device ● Emulator For Development ● Use eBay rmcore.com “Java is a belt fed 240G automatic weapon where sometimes the belt has rounds, sometimes it doesn’t, and when it doesn’t during firing you get an NullPointerException, the gun explodes and you die.” Bjorn Tipling source
  • 10. That Time I Shipped A Crash Bug ● Sanitize User Input “Also app crashes when trying to use decimal as em values for input widths.” rmcore.com
  • 12. What is a JAR? Most Android libraries use Apache 2 rmcore.com Some Favorites ● AChartEngine ● ColorPickerPreference ● aFileChooser
  • 13. Android Security ● Cannot override the home button o Make a home screen launcher o Example: MobiLock Kiosk Lockdown ● Cannot send email directly o Prevents device becoming a spam relay rmcore.com
  • 14. Android Fragmentation Are the vast differences in possible screen sizes a problem? Not so much. rmcore.com FUD Actual
  • 15. Best VCS For Side Project: Git Bitbucket Always use version control rmcore.com
  • 16. Greatest Rewards Evidence of Value Creation “I used to pass around a pad and pen and then it would take me about a day trying to read everyone’s handwriting, not easy. When I do figure it out, many times emails bounced back because a letter was misread. The app makes things error free.” Happy Customers “Fantastic! Thank you for the update! I really appreciate it!” Portfolio rmcore.com
  • 18. Keep In Touch Check out my website at: http://rmcore.com Email: rdg at rmcore dot com Twitter: @rdg_rmcore rmcore.com

Editor's Notes

  1. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
  2. Do you already own an Android device? (Or do you own a Macbook?) Do you already know C/C++ or Java? (Or do you already know Objective C?) A lot less moving parts than a web app. Gives you something to show during an interview. Potential to move your career in a new direction. Exchange value for value and make some money on your side project. My strategy is to offer paid apps. If the user sees the value they pay for the app. A straightforward approach. http://rmcore.com/android-apps-side-project-lessons-learned-introduction/
  3. Which one is a paid app that competes with free? Which one was made from a user request on a forum? Don’t make a paid app when there are popular free alternatives. There are three good ways to find an app idea. Build something users are already asking for. Make something useful to you. Sworkit as an example of scratching your own itch http://www.sworkit.com/ Search app store for popular apps that have complaints. Fix them. Example of slideshow apps and uploading to youtube.http://rmcore.com/paid-android-app-compared-free/
  4. Hard copy is out of date by the time you receive it. Old books came with CDs. This code is on github. Text chat based office hours Comes in PDF, epub, mobi, and as an apk Format and samples are perfect when you don’t have a lot of time http://commonsware.com/Android/ http://rmcore.com/best-android-book/
  5. You don’t have to be a designer. Don’t let publishing something ugly be a stumbling block. Easier than ever to hire a designer. Which icon was custom created by a designer? Which icons were created from public domain clip art? Ways to Get An Icon Pay a designer. Use fiverr. https://www.fiverr.com/ Make your own. http://tekeye.biz/2012/free-android-icons-via-clip-art https://openclipart.org/ More links: http://rmcore.com/android-app-icon-design/ http://rmcore.com/android-icon-links/
  6. You can have a good looking app by doing a minimum amount of work. The Action Bar provides a consistent user experience on the Android platform. It also highlights your icon. Use Stock Icons Visual impact of stock icons http://www.kalzumeus.com/2006/08/26/the-visual-impact-stock-icons-make/ Style text beyond the system default to make it look better. Same with the buttons.
  7. Talk to people. You never know who has experience and could provide a referral. They may even turn you on to best practices such as the Action Bar. Once you have something working, put it in people’s hands and ask for feature suggestions. Provide and easy way for people to email you from the app and ask if they have any feature requests. Pay attention to repeated requests.
  8. Is Google embarrassed by the stock Android emulator? Perhaps they should be. “As anyone who's used the Google Android SDK will know, the emulator it includes is desperately slow and totally unenjoyable to use. “ source: http://arstechnica.com/information-technology/2014/11/visual-studio-2015-goes-even-more-cross-platform-with-clang-android-emulator/ http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/introducing-visual-studio-s-emulator-for-android.aspx
  9. The emulator is good to get started. You will find bugs that you don’t see on the emulator when you test on a real device. You can buy test devices off of eBay. Note: It is possible to debug Android device over WiFi http://www.techrepublic.com/blog/software-engineer/debug-android-applications-over-ethernet/
  10. Users asked for the ability to set the field width. What could go wrong? Treating a float like an int in Java caused an exception and a crash bug. Note: the customer of the paid app was very respectful while I fixed the bug and shipped an update.
  11. On Android, artifacts such as images can be shared from your app in four lines of Java code.
  12. As a new user of Java, I learned about Java archives. These are powerful because they are so easy to integrated. Avoid app bloat by limiting total number of JAR files included.
  13. Home key press not delivered to app: http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME https://play.google.com/store/apps/details?id=com.promobitech.mobilock
  14. There is hw fragmentation. Possible CPUs Arm, MIPS, Intel Atom (mobile x86) MediaCodec API because devices have different hw accelerated audio and video codecs There is different sw on same device. Update video drivers with OTA update. GPad LG vs Google sw on same device.
  15. Github is more famous. Github charges for private repos. Bitbucket hosts private repos for free. Git doesn’t require running a server. Makes version control fast. Don’t really learn it until you use it. Always use version control because you can revert files.
  16. Customer Case Study: http://rmcore.com/collect-email-addresses-android/ Portfolio: Both sides of the table. One of the best candidates I had when interviewing had worked on an app during college. Helped when interviewing for my current position.