Sap building a_social_media_app_for_windows_phone_grasmann
 

Sap building a_social_media_app_for_windows_phone_grasmann

on

  • 729 views

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 ...

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.

Statistics

Views

Total Views
729
Views on SlideShare
715
Embed Views
14

Actions

Likes
1
Downloads
4
Comments
0

2 Embeds 14

http://bitly.com 12
http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Sap building a_social_media_app_for_windows_phone_grasmann Presentation Transcript

  • 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
  • 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
  • Zühlke. Empowering Ideas.
  • 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
  • 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
  • …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
  • 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
  • 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
  • …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
  • 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
  • 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
  • Watch a short recorded demo on YouTube
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • LL Feedback1:Better be prepared!
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • LL Arch1:Offline = default!
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Summary Lessons Learned from Building a Social Media App for Windows Phone Slide 41 of 49 11. April 2012 Stefan Grasmann © Zühlke 2012
  • It’s not always cosy in a Sandwich position with partners…
  • … but it will work if you really want to!
  • 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
  • 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
  • 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
  • More on Mobile Computing:Even apps need engineering. Thank you!