Sap building a_social_media_app_for_windows_phone_grasmann

846 views

Published on

Presentation at SAP on the lessons learned buildung a social media App for windows phone. The slides include a link to a 35sec-Demo on YouTube and share lessons learned regarding: performance, going live, handling user feedback, live tiles, architecture and cross-platform opportunities.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
846
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Feedback (2) …andprepareyourself…
  • Offline ist das beste Default-Szenario
  • Zwischen den Fronten von XING und Microsoft ist es nicht immer leicht.Dazu kommt dann der eigene Qualitätsanspruch…
  • Kooperationen können funktionieren, wenn man sich bemüht (win-win-win)
  • Sap building a_social_media_app_for_windows_phone_grasmann

    1. 1. Lessons Learned from Building aSocial Media App for WindowsPhoneXING for Windows Phone by Zühlke (Webinar for SAP) Slide 1 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    2. 2. AgendaIntroDemoLessons learned regarding• Performance• Going live• Handling user feedback• Live Tiles• Architecture• Cross-platform opportunitiesSummaryLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 2 of 49 © Zühlke 2012
    3. 3. Zühlke. Empowering Ideas.
    4. 4. Three connected areasto increase growth, innovation and productivity• Product & Software Engineering• Management Consulting• VenturesLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 4 of 49 © Zühlke 2012
    5. 5. Facts & Figures• More than 7000 projects to our credit• Turnover 68 Mio. € (2011)• 500 Employees (end 2011)• In Austria, Germany, Switzerland and in the United Kingdom• Foundation 1968, now owned by a management team• ISO 9001:2000 and 13485 certificatedLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 5 of 49 © Zühlke 2012
    6. 6. …and about meStefan Grasmann• MSc in Computer Science,• since 2003 @ Zühlke, since 2007 Business Unit Manager with a team in Frankfurt/Eschborn• Responsible Engagement Manager for many projects with Microsoft technologies• Broad spectrum of project types: embedded topics, rich clients, RIA, web development – now more and more mobile topics• Contact me: – @sgrasmann – sgr@zuehlke.com – sgrasmann.blogspot.comLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 6 of 49 © Zühlke 2012
    7. 7. Smartphone apps – a challenge or anopportunity for engineering serviceproviders like Zühlke?Our situation in 2010:• Big interest among our employees regarding app development• Many initiatives were started (without too much focus)• Interesting technologies• We had to come up with a management strategy to guide all this enthusiasmLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 7 of 49 © Zühlke 2012
    8. 8. Many questions…• How can we leverage our existing knowledge (embedded & connected systems, enterprise mobile apps) to the smart phone app development market?• Where might be our(!) business and which apps and customers would be suitable to our quality and pricing?• Which platform(s) should be in our focus?• How do we differentiate from competitors?• How do the different app markets work? How do you earn money?• Where is our first project to create a compelling reference case?Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 8 of 49 © Zühlke 2012
    9. 9. …earlier attempts to enter the market…• As usual: Convince the customer with our Zühlke values and engineering experience. Propose a time & material budget!? – No chance without references in the different app stores and market places! Difficult…• Be a competitor to agencies, which generate a mobile app from your Facebook account for 500€? – Extremely low price levels. Economically dangerous…• Create demo apps for Android, iPhone and WP7! – We gave it a try, nobody believed us…Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 9 of 49 © Zühlke 2012
    10. 10. New idea…Search for a well-known brand,…a trusted partner, who still is achallenger in this market………and create something new.Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 10 of 49 © Zühlke 2012
    11. 11. Goals of the partners Microsoft: - Create another top app for our new platform All: Quality Zühlke: & Reach XING: - Marketing and - Increase Reach visibility in the - Relief through new market a partner - gain credibilityLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 11 of 49 © Zühlke 2012
    12. 12. Watch a short recorded demo on YouTube
    13. 13. Current reviews look as if we managed toachieve some of our goalshttps://monitor.distimo.com/reviewsPublicly available:http://www.windowsphone.com/de-de/apps/47d0b293-e59c-e011-986b-78e7d1fa76f8 © Zühlke 2012
    14. 14. Lessons learnedregarding……performance Lessons Learned from Building a Social Media App for Windows Phone Slide 14 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    15. 15. LL Perf1:The emulator is not your target!The emulator• is faster than your target• has more memory than your target• has better connectivity than your target• has better crypto algorithms implemented than your targetBottom line:Test on the target!As early as possible!On as many device types as possible! 11. April 2012 Slide 15 of 49 © Zühlke 2012
    16. 16. LL Perf2:Don’t guess! Measure, trace and optimizeas much as you canMeasure• memory footprint of the app (different scenarios)• startup times• animation overheadTrace• typical user flows (beware of privacy!)• locally and Server-side (e.g. Omniture)• to learn about your usersOptimize• for important/frequently used scenarios and areasLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 16 of 49 © Zühlke 2012
    17. 17. LL Perf3:Beware of lazy loading!Lazy loading might be good in PC apps and for serversIt is not for mobile apps!Your users will judge your app on the first impressionand its loading and scrolling performance – you won’tget a second chance!We implemented a “fetch relevant data on first appstart” mechanism to be as fast as possible on 1st usage– so far 0 complaints about this “unusual behavior”Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 17 of 49 © Zühlke 2012
    18. 18. Lessons learnedregarding……going live Lessons Learned from Building a Social Media App for Windows Phone Slide 18 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    19. 19. LL GoingLive1:Don’t underestimate marketing efforts!You will need to create• great teaser texts for your marketplace offer• compelling screen shots (privacy!)• hi-res versions of your app screenshots• a press release in the name of your upper management• Set up a social media strategy to influence feedbackat a time when you have other problems… 11. April 2012 Slide 19 of 49 © Zühlke 2012
    20. 20. LL GoingLive2: Prepare for fast fixes! Bugs in V1.0 Bug in V1.2 (z.B. User with 2835 Hotfix XING contacts) (v1.3) Problem solved in v1.1 2 weeksLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012
    21. 21. LL GoingLive3: Marketing and promotions matter! Press Releases Microsoft campaign Promotion during XING & Zühlke (App of the day) CeBIT (MS) XING corp. blog Mobile Tech Conference (talk) Microsoft campaign (App of the day)Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann Slide 21 of 49
    22. 22. Lessons learnedregarding……user feedback Lessons Learned from Building a Social Media App for Windows Phone Slide 22 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    23. 23. LL Feedback1:Better be prepared!
    24. 24. LL Feedback2:Create usable feedback channels!Create feedback channels for• errors and problems (when they occur!)• suggestions to improve subtle things• fans (yes you will get fans!)Try to create a community:• use social media• direct your users to your place and be a good moderator• React on questions and concerns 11. April 2012 Slide 24 of 49 © Zühlke 2012
    25. 25. LL Feedback3:Be honest and grateful for feedback!Respond to every feedback!Be as fast as you can!In case of a problem• tell your users about the problem• explain the background and reasons why this happened and won’t happen in the futureIf you get feature wishes:• Explain the priority of the feature wish• Tell your users if you won’t implement their wishes and why 11. April 2012 Slide 25 of 49 © Zühlke 2012
    26. 26. LL Feedback4:Implement self-healing mechanisms toreduce support effort!If you want to give proper feedback you want to concentrate on thereal problems – so try to let the app handle “normal problems” foritselfGive the user as much information as possible why s.th. currentlydoesn’t work properly (error messages!) 11. April 2012 Slide 26 of 49 © Zühlke 2012
    27. 27. LL Feedback4:Implement self-healing mechanisms toreduce support effort!Try to consider error conditions and implement self-healingfeatures so that the users won’t bother you with things like• the web server (or a part/service of it) currently isn’t available• the user is currently offline or not allowed to use a certain feature• S.th. with caching went wrong and you’ve got inconsistent data• -> DemoLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 27 of 49 © Zühlke 2012
    28. 28. Lessons learnedregarding……Live Tiles Lessons Learned from Building a Social Media App for Windows Phone Slide 28 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    29. 29. LL LiveTiles1:Creating Live Tiles for Windows PhoneApps is hard!Live Tiles are the No1 differentiator for Windows Phone appsCreating a good Live Tile is hard……and needs several iterations: 11. April 2012 Slide 29 of 49 © Zühlke 2012
    30. 30. Lessons learnedregarding……architecture Lessons Learned from Building a Social Media App for Windows Phone Slide 30 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    31. 31. LL Arch1:Offline = default!
    32. 32. LL Arch2: Use MVVM, async calls, decouple commands View Commands, Calls Data- LocalStorage Access Binding ViewModel Call CallBack, StateChangedEvent Store Call Isolated Storage Publish/ Callback, Service Subscribe errorCallback Parse Response Messenger REST-XMLLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann Slide 32 of 49
    33. 33. LL Arch3: Continuous integration is somewhat hard but possible for mobile developmentLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann Slide 33 of 49
    34. 34. LL Arch4: Extend your app domain model with metadata to improve caching scenarios Profile Data Container Meta Data Meta Data Meta Data Meta Data … Contact News Visitors Contacts … Requests Meta Data MembersLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012
    35. 35. Lessons learnedregarding……cross platform Lessons Learned from Building a Social Media App for Windows Phone Slide 35 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    36. 36. Goal: Reuse business logic and serviceagent code for other apps!Remark: .NET & Mono is just one way!Possible target platforms:• Android phones & tablets (Mono for Android)• iPhone & iPads (MonoTouch)• Windows 8 Metro-style apps (.NET portable class libraries)Create new native GUIs, but reuse the foundation of the app• Data fetching• Client domain model• Error handling• Caching• … 11. April 2012 Slide 36 of 49 © Zühlke 2012
    37. 37. Evolution of our App Architecture to support Android (iOS alike) XingApp.Ui.Android XingApp.Ui.Wp7 Views Views ViewModel ViewModel XingApp.Common.Android XingApp.Common.Wp7 Storage Storage XingApp.Core Stores Services XingApp.Common Interfaces EntitiesLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012
    38. 38. Current code distribution(without test code)-> ~50% reusability – and still „native“ Lines of Code 3245 11482 21264 13792 Views & ViewModels Core Common WP7 specificLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 38 of 49 © Zühlke 2012
    39. 39. Evolution of our App Architecture to support Windows 8 Apps XingApp.Ui.Win8 XingApp.Ui.Wp7 Views Views ViewModel ViewModel Reuse! XingApp.Common.Win8 XingApp.Common.Wp7 Storage Storage XingApp.Core Stores Services Refactor! Replace RESTSharp with XingApp.Common pluggable HttpClient concept to support native Win8 HttpClient Interfaces Entities Refactor!Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012
    40. 40. Reuse overview(possible target architecture) WP7 Windows 8 Android iOS Views Silverlight & WinRT views C# Android specific iOS specific ViewModels .NET portable class libraries(?) Core Logic .NET portable class libraries Common Interfaces .NET portable class libraries Platform specific C# with WP7 C# with WinRT C# with Mono C# with Mono extensions API API API APILessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 40 of 49 © Zühlke 2012
    41. 41. Summary Lessons Learned from Building a Social Media App for Windows Phone Slide 41 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
    42. 42. It’s not always cosy in a Sandwich position with partners…
    43. 43. … but it will work if you really want to!
    44. 44. Don’t underestimate the effort to build afirst-class app!Why?• It is embedded software• It’s a distributed solution• You might not have control over the server-side and its evolution• You typically don’t know much about the users (until v1 release)• You need happy users, otherwise they will punish you…• Your users expect not only functionality and usability – they want to enjoy your app!This is complex! 11. April 2012 Slide 44 of 49 © Zühlke 2012
    45. 45. Many different people helped tomake this project successful!Lessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 45 of 49 © Zühlke 2012
    46. 46. InvitationZühlke Seminar:Cross-Platform for Tablets and Smart Phones„One for all!?“11. Juni 2012 Hannover12. Juni 2012 Frankfurt18. Juni 2012 MünchenHTML 5 vs. Native, cross-platform development options,cross-platform usability & UX, interface aspects & much more…Details: http://www.zuehlke.com/seminar-mobileLessons Learned from Building a Social Media App for Windows Phone | Stefan Grasmann 11. April 2012 Slide 46 of 49 © Zühlke 2012
    47. 47. More on Mobile Computing:Even apps need engineering. Thank you!

    ×