SlideShare a Scribd company logo
1 of 23
Download to read offline
Mirror 
Android UI development on steroids 
b y
MY PROBLEMS 
(YOURS TOO?!)
UI requires a lot of work 
Layouts, styles, resources, code... 
10 change 
20 compile 
30 deploy 
40 test 
50 goto 10 
https://www.flickr.com/photos/romytetue/
AS build + deploy is 
so slooow 
Eclipse was 
faster :(
AS preview is static 
… if it works 
No way to check selectors or animations
Hard to test on device / emu 
How to get to specific screen or usecase? 
How to fill screen with data?
Fragmentation 
The F* word of Android
BEHOLD 
MIRROR
“no More compile-Instal -Run to see youR UI 
changes On Real devices” 
Paid $79 
http://jimulabs.com/ 
AS plugin + server on desktop + client on device
New way to iterate on your UI 
Save 20+ seconds per change, 
hours per day 
No need to touch 
Java code 
Android Frontend 
Developer ?!
HOT SWAP YOUR 
RESOURCES
No more Gradle 
...for simple layout tweeks on the device 
Preview your Layout, Drawable, 
Animator, Styles, Assets, … 
Dynamic preview – test your animations, 
selectors, gestures
Test on multiple devices at once
SAMPLE DATA 
FTW!
Al preview metadata in 
„mirror” directory 
No more „John Smith” or hardcoded 
logos in production code
Add some XML to fill your layout with data 
No more mock adapters ! 
Fill your ListView, GridView with 
data, even different layouts per 
item 
Clone items in adapter 
Works out-of-the-box with texts, 
images and attributes 
basic
CUSTOM VIEWS 
- FINALLY
Preview layouts with CustomViews 
Code is hot 
swapped on 
recompilation 
Use your custom 
attributes in 
sample data
MIRROR.JS 
(PREVIEW)
Add behaviour for your Mirror screens in JS 
Feels like Jquery 
Great way to prototype your animations 
Combine animations: 
together, sequence, delay 
OnClick – start animations, link screens... 
Export your prototype to APK! 
Potential problem: 
client thinks you are done :)
Bonus: 90 day trial 
http://bit.ly/mirrordroidcon 
But wait there is more...
Bonus 2: 30 % discount 
Enter code 
„Outline” at 
checkout 
No, I am not an 
affiliate (yet)
Sylwester Madej 
CEO & Head Developer 
@smdremedy 
sylwester.madej@byoutline.com 
byoutline.com

More Related Content

What's hot

Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 mayLuciano Amodio
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
 
Cutting edge 3 d animation software
Cutting edge 3 d animation softwareCutting edge 3 d animation software
Cutting edge 3 d animation softwareAlexandra Lamilami
 
3d video game animation software
3d video game animation software3d video game animation software
3d video game animation softwareAlexandra Lamilami
 
Best Practices for Android UI by RapidValue Solutions
Best Practices for Android UI by RapidValue SolutionsBest Practices for Android UI by RapidValue Solutions
Best Practices for Android UI by RapidValue SolutionsRapidValue
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not SuckAutomated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suckadamcarmi
 
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCampHow to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCampmoshemilman
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With SeleniumAdvanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Seleniumadamcarmi
 
Getting Started with Starling and Feathers
Getting Started with Starling and FeathersGetting Started with Starling and Feathers
Getting Started with Starling and FeathersJoseph Labrecque
 
How to Extend Axure's Animation Capability
How to Extend Axure's Animation CapabilityHow to Extend Axure's Animation Capability
How to Extend Axure's Animation CapabilitySvetlin Denkov
 
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScriptjQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScriptPhilipp Bosch
 

What's hot (17)

Sp Design
Sp DesignSp Design
Sp Design
 
3 d animation software best
3 d animation software best3 d animation software best
3 d animation software best
 
Angular js mobile jsday 2014 - Verona 14 may
Angular js mobile   jsday 2014 - Verona 14 mayAngular js mobile   jsday 2014 - Verona 14 may
Angular js mobile jsday 2014 - Verona 14 may
 
3d animation software top 10
3d animation software top 103d animation software top 10
3d animation software top 10
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5
 
Cutting edge 3 d animation software
Cutting edge 3 d animation softwareCutting edge 3 d animation software
Cutting edge 3 d animation software
 
3d animation software easiest
3d animation software easiest3d animation software easiest
3d animation software easiest
 
3d video game animation software
3d video game animation software3d video game animation software
3d video game animation software
 
Best Practices for Android UI by RapidValue Solutions
Best Practices for Android UI by RapidValue SolutionsBest Practices for Android UI by RapidValue Solutions
Best Practices for Android UI by RapidValue Solutions
 
Your First Adobe Flash Application for Android
Your First Adobe Flash Application for AndroidYour First Adobe Flash Application for Android
Your First Adobe Flash Application for Android
 
Desarrollo AIR Mobile
Desarrollo AIR MobileDesarrollo AIR Mobile
Desarrollo AIR Mobile
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not SuckAutomated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suck
 
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCampHow to level-up your Selenium tests with Visual Testing #SeleniumCamp
How to level-up your Selenium tests with Visual Testing #SeleniumCamp
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With SeleniumAdvanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
 
Getting Started with Starling and Feathers
Getting Started with Starling and FeathersGetting Started with Starling and Feathers
Getting Started with Starling and Feathers
 
How to Extend Axure's Animation Capability
How to Extend Axure's Animation CapabilityHow to Extend Axure's Animation Capability
How to Extend Axure's Animation Capability
 
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScriptjQTouch – Mobile Web Apps with HTML, CSS and JavaScript
jQTouch – Mobile Web Apps with HTML, CSS and JavaScript
 

Similar to Mirror - Android UI on steroids: Droidcon Cracow 2014

Mirror - Android UI development on steroids
Mirror - Android UI development on steroidsMirror - Android UI development on steroids
Mirror - Android UI development on steroidsSylwester Madej
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With SeleniumSeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Seleniumadamcarmi
 
Backbone.js – an introduction
Backbone.js – an introductionBackbone.js – an introduction
Backbone.js – an introductionbobbyroe
 
Windows 8 app template feedback
Windows 8 app template feedbackWindows 8 app template feedback
Windows 8 app template feedbackSteren Giannini
 
Appcelerator Titanium Kinetic practices part 1
Appcelerator Titanium Kinetic practices part 1Appcelerator Titanium Kinetic practices part 1
Appcelerator Titanium Kinetic practices part 1フ乇丂ひ丂
 
Yeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsYeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsclimboid
 
Crafting Awesome Designs - #BSW14
Crafting Awesome Designs - #BSW14Crafting Awesome Designs - #BSW14
Crafting Awesome Designs - #BSW14David Pitman
 
Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Raymond Camden
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esdavrous
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQueryPaul Bakaus
 
Better User Experience with .NET
Better User Experience with .NETBetter User Experience with .NET
Better User Experience with .NETPeter Gfader
 
Thomas Lobinger
Thomas LobingerThomas Lobinger
Thomas LobingerCodeFest
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with SeleniumAdvanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Seleniumadamcarmi
 
Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"Fwdays
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
That’s not your var – JavaScript best practices for C# developers
That’s not your var – JavaScript best practices for C# developersThat’s not your var – JavaScript best practices for C# developers
That’s not your var – JavaScript best practices for C# developersGyörgy Balássy
 
Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!Applitools
 
Advanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 PreviewAdvanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 PreviewDanijel Malik
 
Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.James Christie
 

Similar to Mirror - Android UI on steroids: Droidcon Cracow 2014 (20)

Mirror - Android UI development on steroids
Mirror - Android UI development on steroidsMirror - Android UI development on steroids
Mirror - Android UI development on steroids
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With SeleniumSeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
 
Backbone.js – an introduction
Backbone.js – an introductionBackbone.js – an introduction
Backbone.js – an introduction
 
Windows 8 app template feedback
Windows 8 app template feedbackWindows 8 app template feedback
Windows 8 app template feedback
 
Appcelerator Titanium Kinetic practices part 1
Appcelerator Titanium Kinetic practices part 1Appcelerator Titanium Kinetic practices part 1
Appcelerator Titanium Kinetic practices part 1
 
Yeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsYeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web apps
 
Crafting Awesome Designs - #BSW14
Crafting Awesome Designs - #BSW14Crafting Awesome Designs - #BSW14
Crafting Awesome Designs - #BSW14
 
Don't Over-React - just use Vue!
Don't Over-React - just use Vue!Don't Over-React - just use Vue!
Don't Over-React - just use Vue!
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
 
Better User Experience with .NET
Better User Experience with .NETBetter User Experience with .NET
Better User Experience with .NET
 
Thomas Lobinger
Thomas LobingerThomas Lobinger
Thomas Lobinger
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with SeleniumAdvanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Selenium
 
Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
That’s not your var – JavaScript best practices for C# developers
That’s not your var – JavaScript best practices for C# developersThat’s not your var – JavaScript best practices for C# developers
That’s not your var – JavaScript best practices for C# developers
 
Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!Automated Visual Testing That Doesn't Suck!
Automated Visual Testing That Doesn't Suck!
 
Advanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 PreviewAdvanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 Preview
 
Building Web Interfaces
Building Web InterfacesBuilding Web Interfaces
Building Web Interfaces
 
Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.Optimizing for a faster user experience Pt 2: How-to.
Optimizing for a faster user experience Pt 2: How-to.
 

More from Sylwester Madej

Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsSylwester Madej
 
Implementacja Material Design na Android Lollipop i starszych - MTC 2015
Implementacja Material Design na Android Lollipop i starszych - MTC 2015Implementacja Material Design na Android Lollipop i starszych - MTC 2015
Implementacja Material Design na Android Lollipop i starszych - MTC 2015Sylwester Madej
 
Android libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easierAndroid libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easierSylwester Madej
 
No more waiting for API - Android Stub Server
No more waiting for API - Android Stub ServerNo more waiting for API - Android Stub Server
No more waiting for API - Android Stub ServerSylwester Madej
 
Practical Android Course Part III - REST API with AQuery, Preferences, Androi...
Practical Android Course Part III - REST API with AQuery, Preferences, Androi...Practical Android Course Part III - REST API with AQuery, Preferences, Androi...
Practical Android Course Part III - REST API with AQuery, Preferences, Androi...Sylwester Madej
 
Practical Android Course Part I - Introduction, Activities (KNI)
Practical Android Course Part I - Introduction, Activities (KNI) Practical Android Course Part I - Introduction, Activities (KNI)
Practical Android Course Part I - Introduction, Activities (KNI) Sylwester Madej
 

More from Sylwester Madej (6)

Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and Jenkins
 
Implementacja Material Design na Android Lollipop i starszych - MTC 2015
Implementacja Material Design na Android Lollipop i starszych - MTC 2015Implementacja Material Design na Android Lollipop i starszych - MTC 2015
Implementacja Material Design na Android Lollipop i starszych - MTC 2015
 
Android libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easierAndroid libs by Square - make your development a bit easier
Android libs by Square - make your development a bit easier
 
No more waiting for API - Android Stub Server
No more waiting for API - Android Stub ServerNo more waiting for API - Android Stub Server
No more waiting for API - Android Stub Server
 
Practical Android Course Part III - REST API with AQuery, Preferences, Androi...
Practical Android Course Part III - REST API with AQuery, Preferences, Androi...Practical Android Course Part III - REST API with AQuery, Preferences, Androi...
Practical Android Course Part III - REST API with AQuery, Preferences, Androi...
 
Practical Android Course Part I - Introduction, Activities (KNI)
Practical Android Course Part I - Introduction, Activities (KNI) Practical Android Course Part I - Introduction, Activities (KNI)
Practical Android Course Part I - Introduction, Activities (KNI)
 

Mirror - Android UI on steroids: Droidcon Cracow 2014

  • 1. Mirror Android UI development on steroids b y
  • 3. UI requires a lot of work Layouts, styles, resources, code... 10 change 20 compile 30 deploy 40 test 50 goto 10 https://www.flickr.com/photos/romytetue/
  • 4. AS build + deploy is so slooow Eclipse was faster :(
  • 5. AS preview is static … if it works No way to check selectors or animations
  • 6. Hard to test on device / emu How to get to specific screen or usecase? How to fill screen with data?
  • 7. Fragmentation The F* word of Android
  • 9. “no More compile-Instal -Run to see youR UI changes On Real devices” Paid $79 http://jimulabs.com/ AS plugin + server on desktop + client on device
  • 10. New way to iterate on your UI Save 20+ seconds per change, hours per day No need to touch Java code Android Frontend Developer ?!
  • 11. HOT SWAP YOUR RESOURCES
  • 12. No more Gradle ...for simple layout tweeks on the device Preview your Layout, Drawable, Animator, Styles, Assets, … Dynamic preview – test your animations, selectors, gestures
  • 13. Test on multiple devices at once
  • 15. Al preview metadata in „mirror” directory No more „John Smith” or hardcoded logos in production code
  • 16. Add some XML to fill your layout with data No more mock adapters ! Fill your ListView, GridView with data, even different layouts per item Clone items in adapter Works out-of-the-box with texts, images and attributes basic
  • 17. CUSTOM VIEWS - FINALLY
  • 18. Preview layouts with CustomViews Code is hot swapped on recompilation Use your custom attributes in sample data
  • 20. Add behaviour for your Mirror screens in JS Feels like Jquery Great way to prototype your animations Combine animations: together, sequence, delay OnClick – start animations, link screens... Export your prototype to APK! Potential problem: client thinks you are done :)
  • 21. Bonus: 90 day trial http://bit.ly/mirrordroidcon But wait there is more...
  • 22. Bonus 2: 30 % discount Enter code „Outline” at checkout No, I am not an affiliate (yet)
  • 23. Sylwester Madej CEO & Head Developer @smdremedy sylwester.madej@byoutline.com byoutline.com