The document discusses lessons learned from developing the HowAboutWe dating app for Android. It covers topics like designing for multiple platforms, customizing the app's look and feel, debates around navigation design, using notifications, choosing an integrated development environment, and ensuring backward compatibility. The goal was to provide a consistent brand experience while following each platform's conventions and support a wide range of Android devices.
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Chuck Greb
Maps and location-based features are the foundation for many apps and provide a rich contextual experience that transforms based on your environment. With the advent of beacons and wearables location awareness is becoming increasingly vital. Open source location services and map frameworks can give you greater transparency, flexibility, compatibility, and control when building location-based apps.
This workshop will explore how to implement maps and other location-aware features on Android and iOS using open source tools. We will highlight why an ecosystem rich with open development, data, and processes is vital for geo-location to thrive in the mobile age.
http://schedule.sxsw.com/2015/events/event_IAP31861
Many testing tools exist for Android including JUnit, Mockito, Robolectric, and Espresso. But how can you design your application to leverage each one most effectively? This talk introduces a modified version of the Model View Presenter (MVP) architecture to organize your code to be more flexible, maintainable, and testable.
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Chuck Greb
Maps and location-based features are the foundation for many apps and provide a rich contextual experience that transforms based on your environment. With the advent of beacons and wearables location awareness is becoming increasingly vital. Open source location services and map frameworks can give you greater transparency, flexibility, compatibility, and control when building location-based apps.
This workshop will explore how to implement maps and other location-aware features on Android and iOS using open source tools. We will highlight why an ecosystem rich with open development, data, and processes is vital for geo-location to thrive in the mobile age.
http://schedule.sxsw.com/2015/events/event_IAP31861
Many testing tools exist for Android including JUnit, Mockito, Robolectric, and Espresso. But how can you design your application to leverage each one most effectively? This talk introduces a modified version of the Model View Presenter (MVP) architecture to organize your code to be more flexible, maintainable, and testable.
Server-Driven User Interface (SDUI) at PricelineUXDXConf
This presentation discusses the complexities of aligning teams and ensuring consistent product experiences across various platforms, proposing Server Driven UI (SDUI) as a solution.
Key Points Covered:
- The challenge of maintaining consistency in product experiences across web and app interfaces, highlighted by discrepancies in user experience features like comment sections.
- Introduction of Server Driven UI (SDUI) to manage uniformity and streamline updates across different platforms.
- The importance of adapting design systems to accommodate SDUI, ensuring uniform naming conventions, and component functionalities.
- Technical discussions on overcoming framework differences and the operational load on developers due to continuous OS updates.
Server-Driven User Interface (SDUI) at PricelineUXDXConf
This presentation discusses the complexities of aligning teams and ensuring consistent product experiences across various platforms, proposing Server Driven UI (SDUI) as a solution.
Key Points Covered:
- The challenge of maintaining consistency in product experiences across web and app interfaces, highlighted by discrepancies in user experience features like comment sections.
- Introduction of Server Driven UI (SDUI) to manage uniformity and streamline updates across different platforms.
- The importance of adapting design systems to accommodate SDUI, ensuring uniform naming conventions, and component functionalities.
- Technical discussions on overcoming framework differences and the operational load on developers due to continuous OS updates.
Design is a crucial step in Software Development, during this session we will be learning the basics of User interface using Figma, inVision studio and Adobe XD.
Designing the New Android Experience - The Golden Age of AndroidMutual Mobile
Mutual Mobile's Android design tips for the new Android experience. Written by the author of the original Android Human Interface Guidelines, this piece explores how Ice Cream Sandwich and Jelly Bean (Android 4.0 - 4.2) have transformed everything we thought we knew about Android. For more on mobile design, development, and strategy, visit www.mutualmobile.com
These slides are from a 2 hour presentation called Design for Developers.
The goal of Design for Developers is to teach interface design as a set of rules: there are some good default values for a lot of design decisions that you should remember, there is a “scientific” way of approaching things like alignment, even though many designers will tell you it’s something you should “feel”.
What's it about: Large companies need UX, but don't always realize it. Startups know they need good UX to compete, but how can they on a small budget? What are the unique challenges designers face (and overcome) when designing for a B2B product? Paycor Senior UX Manager Jason Clemens will discuss the processes he’s developed to deal with the unique challenges of building a great user experience in these types of applications.
Software prototyping is an important UX design skill that many people “just do” but effective prototyping requires crucial knowledge and practices that aren’t obvious. In this talk, Everett will explain prototyping and its goals, compare prototyping to sketching, and explore the different types of prototyping. He will then characterize effective prototyping and explain why those characteristics are so important.
Everett will review several commonly available prototyping tools (including SketchFlow), and evaluate their pros and cons. He will conclude by working through some examples so that you can see effective prototyping in practice.
If you or your team is prototyping now or considering prototyping in the future, this talk is for you!
Amy and Kieran were recently invited to represent Freerange by giving a one hour guest lecture – ‘Designing for Interactive User Interfaces’ – to Kieran's student group at UniSA. The lecture focused on application design specific to mobile – although the process can extend to any device.
Designing for Interactive User InterfacesKieran Wallis
A presentation by Freerange Future on Interactive User Interface design for the University of South Australia 3rd Year Visual Communication students. www.freerangefuture.com
Designing for Interactive User InterfacesKieran Wallis
A presentation by Freerange Future on Interactive UI design for 3rd year Visual Communication students at the University of South Australia. www.freerangefuture.com
Slides from Focus on Learning conference that share principles from UX, UI, game design, and instructional design to follow when creating learning games for the phone.
In just four months, Microsoft has already sold over 60 million licenses of Windows 8. This new version of Microsoft’s flagship operating system creates new opportunities for designers and developers to reach vast numbers of users. Windows 8 applications are designed following the principles of the Modern UI style. In this webinar, Valentina will teach you the basics of designing Windows 8 applications that fit within the Modern UI paradigm while maintaining a strong brand and personality.
Intro to Android maps for Maptime SF
http://www.meetup.com/Maptime-SF/events/218159582/
Raster maps with osmdroid
https://github.com/ecgreb/osmdroid-demo
Vector maps with OpenScienceMap
https://github.com/ecgreb/opensciencemap-demo
Building Location-Aware Apps using Open Source (AnDevCon SF 2014)Chuck Greb
A map can show you where you are or how to get from here to there. But in a world of location aware devices maps can do so much more. Maps and location-based features are the foundation for many apps and provide a rich contextual experience that transforms based on your environment. With the advent of beacons and wearables location awareness is increasingly vital. Open-source location services and map frameworks give you greater transparency, flexibility, compatibility, and control when building location-based apps. This tutorial will explore how to implement maps and other location-aware features using open source tools.
Server-Driven User Interface (SDUI) at PricelineUXDXConf
This presentation discusses the complexities of aligning teams and ensuring consistent product experiences across various platforms, proposing Server Driven UI (SDUI) as a solution.
Key Points Covered:
- The challenge of maintaining consistency in product experiences across web and app interfaces, highlighted by discrepancies in user experience features like comment sections.
- Introduction of Server Driven UI (SDUI) to manage uniformity and streamline updates across different platforms.
- The importance of adapting design systems to accommodate SDUI, ensuring uniform naming conventions, and component functionalities.
- Technical discussions on overcoming framework differences and the operational load on developers due to continuous OS updates.
Server-Driven User Interface (SDUI) at PricelineUXDXConf
This presentation discusses the complexities of aligning teams and ensuring consistent product experiences across various platforms, proposing Server Driven UI (SDUI) as a solution.
Key Points Covered:
- The challenge of maintaining consistency in product experiences across web and app interfaces, highlighted by discrepancies in user experience features like comment sections.
- Introduction of Server Driven UI (SDUI) to manage uniformity and streamline updates across different platforms.
- The importance of adapting design systems to accommodate SDUI, ensuring uniform naming conventions, and component functionalities.
- Technical discussions on overcoming framework differences and the operational load on developers due to continuous OS updates.
Design is a crucial step in Software Development, during this session we will be learning the basics of User interface using Figma, inVision studio and Adobe XD.
Designing the New Android Experience - The Golden Age of AndroidMutual Mobile
Mutual Mobile's Android design tips for the new Android experience. Written by the author of the original Android Human Interface Guidelines, this piece explores how Ice Cream Sandwich and Jelly Bean (Android 4.0 - 4.2) have transformed everything we thought we knew about Android. For more on mobile design, development, and strategy, visit www.mutualmobile.com
These slides are from a 2 hour presentation called Design for Developers.
The goal of Design for Developers is to teach interface design as a set of rules: there are some good default values for a lot of design decisions that you should remember, there is a “scientific” way of approaching things like alignment, even though many designers will tell you it’s something you should “feel”.
What's it about: Large companies need UX, but don't always realize it. Startups know they need good UX to compete, but how can they on a small budget? What are the unique challenges designers face (and overcome) when designing for a B2B product? Paycor Senior UX Manager Jason Clemens will discuss the processes he’s developed to deal with the unique challenges of building a great user experience in these types of applications.
Software prototyping is an important UX design skill that many people “just do” but effective prototyping requires crucial knowledge and practices that aren’t obvious. In this talk, Everett will explain prototyping and its goals, compare prototyping to sketching, and explore the different types of prototyping. He will then characterize effective prototyping and explain why those characteristics are so important.
Everett will review several commonly available prototyping tools (including SketchFlow), and evaluate their pros and cons. He will conclude by working through some examples so that you can see effective prototyping in practice.
If you or your team is prototyping now or considering prototyping in the future, this talk is for you!
Amy and Kieran were recently invited to represent Freerange by giving a one hour guest lecture – ‘Designing for Interactive User Interfaces’ – to Kieran's student group at UniSA. The lecture focused on application design specific to mobile – although the process can extend to any device.
Designing for Interactive User InterfacesKieran Wallis
A presentation by Freerange Future on Interactive User Interface design for the University of South Australia 3rd Year Visual Communication students. www.freerangefuture.com
Designing for Interactive User InterfacesKieran Wallis
A presentation by Freerange Future on Interactive UI design for 3rd year Visual Communication students at the University of South Australia. www.freerangefuture.com
Slides from Focus on Learning conference that share principles from UX, UI, game design, and instructional design to follow when creating learning games for the phone.
In just four months, Microsoft has already sold over 60 million licenses of Windows 8. This new version of Microsoft’s flagship operating system creates new opportunities for designers and developers to reach vast numbers of users. Windows 8 applications are designed following the principles of the Modern UI style. In this webinar, Valentina will teach you the basics of designing Windows 8 applications that fit within the Modern UI paradigm while maintaining a strong brand and personality.
Similar to HowAboutWe... Build an Android App (20)
Intro to Android maps for Maptime SF
http://www.meetup.com/Maptime-SF/events/218159582/
Raster maps with osmdroid
https://github.com/ecgreb/osmdroid-demo
Vector maps with OpenScienceMap
https://github.com/ecgreb/opensciencemap-demo
Building Location-Aware Apps using Open Source (AnDevCon SF 2014)Chuck Greb
A map can show you where you are or how to get from here to there. But in a world of location aware devices maps can do so much more. Maps and location-based features are the foundation for many apps and provide a rich contextual experience that transforms based on your environment. With the advent of beacons and wearables location awareness is increasingly vital. Open-source location services and map frameworks give you greater transparency, flexibility, compatibility, and control when building location-based apps. This tutorial will explore how to implement maps and other location-aware features using open source tools.
Building Location-Aware Apps with Open Source & Open DataChuck Greb
A map can show you where you are or how to get from here to there. But in a world of location aware devices maps can do so much more. Maps and location-based features are the foundation for many apps and provide a rich contextual experience that transforms based on your environment. Open source location services and map frameworks can give you greater transparency, flexibility, compatibility, and control when building location-based apps. This talk will explore how to implement maps and other location-aware features on Android using open source and open data.
A discussion about unit testing strategies and test-driven development on the Android platform including:
* Unit Testing & TDD Overview
* Android Testing Framework
* JUnit 4 + POJO Library
* Robolectric
Google Charts is a JavaScript API for quickly creating beautiful charts and graphs that are powerful, simple to use, and best of all free. This talk explores how you can incorporate Google Charts into your Android apps using a WebView and very little code.
3. Becoming An ANDROID DEVELOPER
What used to take years of agony
and frustration, sleepless nights,
trial and error, and excessive doses
of caffeine can now be accomplished
with a few simple taps on your
device.
Video
3 of 46
Wednesday, February 27, 13
4. Overview
Lessons learned from the design and development process
building HowAboutWe Dating for Android.
• Cross platform design • Development environment
• Customized look and feel • Backward compatibility
• Home screen and navigation • Testing
• Notifications
4 of X
Wednesday, February 27, 13
5. Overview
Lessons learned from the design and development process
building HowAboutWe Dating for Android.
• Cross platform design • Development environment
• Customized look and feel • Backward compatibility
• Home screen and navigation • Testing
• Notifications
5 of 46
Wednesday, February 27, 13
6. Overview
Lessons learned from the design and development process
building HowAboutWe Dating for Android.
• Cross platform design • Development environment
• Customized look and feel • Backward compatibility
• Home screen and navigation • Testing
• Notifications
6 of 46
Wednesday, February 27, 13
8. CROSS PLATFORM DESIGN
Android, iOS, and mobile web each have their own design
patterns and conventions. In designing for these platforms,
the goal is to achieve both cross-platform brand consistency
and alignment with the conventions specific to the platform.
8 of 46
Wednesday, February 27, 13
10. Pure Android
Android, iOS, and mobile web.
10 of 46
Wednesday, February 27, 13
11. LOOK AND FEEL
Custom UI components
Wednesday, February 27, 13
12. LOOK AND FEEL
On Android, the look and feel (and sometimes even behavior)
of system default components will vary significantly
depending on platform version, device manufacturer, and
theme.
The only way to truly ensure style and layout consistency
across various platform versions, manufacturers, screen sizes
and densities is by using custom UI components.
12 of 46
Wednesday, February 27, 13
13. Buttons
Buttons are one of the easiest components to customize, so
start your customizations there. Typically, functionality for a
button is not going to change. But the look and feel is
drastically different between pre-Honeycomb and post-
Honeycomb devices.
Developers can simply drop in alternative assets for each
screen density and state to make the buttons look the same
across all platform versions.
13 of 46
Wednesday, February 27, 13
14. BUTTONS
Jelly Bean v. Gingerbread
14 of 46
Wednesday, February 27, 13
15. BUTTONS
Jelly Bean v. Gingerbread
15 of 46
Wednesday, February 27, 13
16. Spinners
Spinners (drop down menus) look very different on pre-
Honeycomb devices. This can affect not only the look and feel
of the individual component but the overall layout of a screen.
16 of 46
Wednesday, February 27, 13
17. SPINNERS
Jelly Bean
17 of 46
Wednesday, February 27, 13
18. SPINNERS
Gingerbread
18 of 46
Wednesday, February 27, 13
19. Edit Basics
Jelly Bean
19 of 46
Wednesday, February 27, 13
20. Edit Basics
Gingerbread
20 of 46
Wednesday, February 27, 13
21. THE GREAT MAIN MENU DEBATE
Home screen and navigation
Wednesday, February 27, 13
22. NAVIGATION
In designing the UI pattern for the HowAboutWe app, we
wanted to provide an elegant full-screen experience, keeping
navigation quarantined in a secondary area. However, we also
wanted to provide the capacity for rapid switching between
tasks.
22 of 46
Wednesday, February 27, 13
23. DASHBOARD
Our initial designs used the fullscreen dashboard view pattern
seen in the earlier version of the Facebook Android app and
the 2011 Google I/O app.
The options are presented to the user in a simple, easy-to-
digest grid. And, from an implementation standpoint, it’s fairly
simple and straightforward.
23 of 46
Wednesday, February 27, 13
25. DASHBOARD
However, from a user's perspective, there are significant
downsides. The navigational experience disruptively occupies
the entire screen.
It makes navigation a primary act rather than a facilitative
one. In this way, it’s a bit of a monolithic design choice.
25 of 46
Wednesday, February 27, 13
26. SLIDING MENU
Within the last year, the sliding drawer model has become
increasingly popular, perhaps first made popular by the
Twitter iPad app.
Visually compelling, easeful, and fun to use, it has since been
adopted by Facebook, YouTube, Google+, Path and many
others.
26 of 46
Wednesday, February 27, 13
27. Sliding Menu
27 of 46
Wednesday, February 27, 13
28. KEEP ME IN THE LOOP
Notifications
Wednesday, February 27, 13
29. notifications
With the introduction of rich notifications, status bar
notifications became much more visually appealing and
powerful.
Now more information can be conveyed to the user via
notifications along with additional options for taking action.
29 of 46
Wednesday, February 27, 13
30. notifications
New message
30 of 46
Wednesday, February 27, 13
31. THE (NOT SO) GREAT IDE DEBATE
Development environment
Wednesday, February 27, 13
32. Development Environment
Engineers thrive on good tools that save them time and help
them write better code.
IDEs can inspect our code, optimize it, and refactor it-- usually
better, faster, and with fewer mistakes than our human hands.
32 of 46
Wednesday, February 27, 13
34. Development Environment
Other Tools
• Git
• Maven
• Jenkins
• Sonatype Nexus
34 of 46
Wednesday, February 27, 13
35. BACK TO THE FUTURE
Backward compatibility
Wednesday, February 27, 13
36. Backward compatibility
When building HowAboutWe Dating for Android, we knew that
we wanted to take advantage of recent advancements in the
platform including fragments, action bar, rich notifications,
and the Holo theme.
Fortunately there are open source tools and strategies we
found to help us deliver a modern and rich experience to users
with the latest versions of the the platform, yet still provide a
gracefully degraded experience to the rest of users and
devices.
36 of 46
Wednesday, February 27, 13
37. Backward compatibility
Aiming to support older releases is noble. Ignoring what has
happened since those releases is stupid, if you are trying to
distribute your app to the public via the Play Store or similar
mass-distribution means. You want your app to be distinctive,
not decomposing.
Mark Murphy
The Busy Coder’s Guide to Android Development (v4.2)
37 of 46
Wednesday, February 27, 13
42. IF it ain’t broke
Testing
Wednesday, February 27, 13
43. Testing
When building HowAboutWe Dating, we knew that we want to
take a test-driven approach.
With extensive unit test coverage, we are able to implement
new features and refactor the code base with confidence, since
ideally any regressions will be caught by the existing tests.
43 of 46
Wednesday, February 27, 13
44. Testing
I don't care how good you think your design is. If I can't walk in
and write a test for an arbitrary method of yours in five minutes
its not as good as you think it is, and whether you know it or not,
you're paying a price for it.
Michael Feathers
44 of 46
Wednesday, February 27, 13
45. Testing
Robolectric
45 of 46
Wednesday, February 27, 13
46. Build AN ANDROID APP
Lessons learned building
HowAboutWe Dating for Android
Chuck Greb
@ecgreb
chuck@howaboutwe.com
Wednesday, February 27, 13