9.00 Barcamp planning
Getting all sessions in for the day’s talks. At the end of the day there will also be an “Appcamp” to demo applications to the audience.
10.30 AIDE – Android Wear app with AIDE
Company: appfour GmbH, Speakers: Hans Kratz, Dr. Dennis Strein, Website: www.android-ide.com.
AIDE = Android Integrated Development Environment.
Applications that are “Wear enabled” contain the Wear APK inside the phone APK.
AIDE uses Gradle to package Wear. To enable Wear, add the following to your build dependencies:
- wearApp project(':wearable')
Google also has a lot of information on how to create wearable apps.
The presentation was followed by a live demo of how to use AIDE on a device.
11.10 Modern Testing Technologies
(or how to avoid getting murdered in your sleep by a death goblin.)
Speaker: Mr Death Goblin a.k.a. Zan Markan
Follow SOLID principles to increase your chances to catch a goblin.
Good tools for this include: Dagger (DI/IoC), Mockito (mocking), Calabash, Robotium, etc. Start using the tools before you write a single line of code.
When your project grows, allow for refactoring. Split up too big methods, classes, etc. The tests should be there to help you achieve that and keep things working.
Use CI tools, like Travis, to automatically test / build your project.
How to deal with legacy projects? Start by covering new features with tests. Cover any code related to bug fixing with tests. Little by little the coverage will get better and better.
12.05 TDD Coverage
Tools: GUnit (Unit tests), Robolectric, Mockito (Mocking), Emma (for coverage).
Performance testing with a monkey that visits every Activity, combine this with TraceView for profiling to measure memory usage, CPU, etc.
Testing the manifest: Use Robolectric to get a shadow application, fetch the package manager, check what service, receivers, etc are registered and verify that they exist.
12.45 Simple persistence with cupboard
Company: LittleRobots, Speaker: Hugo Visser, Project home: bitbucket.org/qbusict/cupboard
SQLite powered, using field names (from Models) to match columns. Simple usage example
14.20 Calligraphy – Fonts in styling
Company: YoYo, Speaker: Chris Jenkins, Project home: github.com/chrisjenx/Calligraphy
Simplifying using custom fonts on Android.
- <TextView ... fontPath="fonts/your_font.ttf">
15.55 Y U No craftsman!?
Company: Novoda, Speakers: Paul Blundell and Xavi Rieau
Ways to create better code / be a better craftsman.
Pair programming, best coding practices, code reviews. Care about CI, show build status (i.e. on a big screen in the office). Run static analysis reports. Test!
To make things more fun: CI Game (Jenkins plugin), creates a monthly leaderboard.
Use the latest tools with your work.
Be “agile”, build features the way they make sense. Believe in YAGNI (you ain’t gonna need it), don’t over-engineer.
Make your app awesome:
- Get off the main thread.
- Use Strict Mode (both in code and dev options).
- Use “GPU Profiling” (under dev options).
- Use “Show Overdraw”
- Polish the app. (Lots of tips in the Android docs.)
- Animate all the things.
- Listen to (user) feedback.
- Measure the data.
- Follow the guidelines.
- Add debug screen(s) for QA and yourself.
- Proper versioning.
- Hexagonal architecture.
Showcasing the following applications
- See Speak
- Hey Order
- Islamic prayer times
- E-reader Open Source app
17.30 Practicing Practical Best Practices – for Software Development Practitioners
Company: Google, Speaker: Chet Haase – Process Methodologist
“Practices Make Perfection”
Traditional best practices: Code comments, Naming conventions, Simplicity, Portability. Continuous Integration, Testing, Process.
Laws of software quality:
- errors = (more code)^2 = e = mc^2
- The more bugs, the less quality.
The path to better quality software: higher quality, less bugs, fewer code.