SlideShare ist ein Scribd-Unternehmen logo
1 von 34
mobile development
   from developer’s point of view
   Ivan Kirkorau, EPAM Systems
              MS Dev Days 2011
me
reason to go mobile
path to choose
they are different


many pages            activities
navigation            components
UI <-> code           intents
data binding          callback i-f
MVVM (?)              MVC (?)
ask right questions
 doesn’t matter “what is greater?”
does matter “what suits you best!”
#01: leverage your
skills
#02: IDE, tools,
emulator
#03: documentation
#04: lang & libs




      Objective-C
#05: learning curve
• Is it hard to learn basics?
• How far from basics to professional?
• Is it a “pleasant” learning
  experience?
#06: making mistakes
• Does it help avoid mistakes?
• Is it easy to make your code crash?
#07: good-looking UI
 • Is it easy to create good looking UI?


#08: making piece of
s… often will devs make crappy
 • How
  apps?
#09: standard & custom
• Is it easy to implement common
  tasks?
  – navigating between screens
  – displaying lists
  – loading data from web service
  – parsing xml
• Is it easy to customize?
#10: developer image
codename “Mango”
  what’s new and what’s old
reading Manga
my favorite features
 • LINQ (to objects, to XML, to HTML)
 • data binding
 • lambda expressions

having difficulties
 • everything is asynchronous
 • BACK button and tombstoning
local database
• API:      LINQ to SQL
• Design:   in code, attributes
• Store:    Isolated Storage



• article on MSDN
background …
• AGENT
 – PeriodicTask (~25 sec)
 – ResourceIntensiveTask (~10 min)


• DOWNLOADING
 – download/upload up to 5 requests
 – control execution
tiles & notifications
 •   tiles updates
 •   deep linking
 •   multiple tiles per application
 •   number on tile
 •   local toast notification
 •   … notification services
network
• sockets API
• TCP
• UDP
marketplace
easier than before, but required
         …fast forward
submission walkthrough
• app hub account + ready .xap file
• description and comments
  – dev and testing comments
• upload images (some unexpected sizes)
  – should have high quality master images
• categories and pricing
submit
back & back again
back = the source of all evil
i. can you exit the app?
ii. “back” cycles?
iii. loss of state and crash
iv. press back in unexpected places
v. lost handlers/bindings
loss of internet
if your main action is to download stuff
– test the connectivity loss!
how to simulate connectivity loss?
• connect device to a computer
• remove the cable/WiFi
  – when connected device ALWAYS uses
    PC internet connection
memory limit
on devices your app must not use
>90Mb at peak.
    how to get memory tests?
• use DeviceStatus
check ApplicationPeakMemoryUsage
check ApplicationCurrentMemoryUsage
exception handling
• do not CRASH!
• notify the user with a solution:
  “try again later”
  “check your internet connection”
  “contact support@…”
black & white
• test dark and light themes
  – some icons may look unexpectedly white
  – some colors may not correlate well
capability testing
• use “CapabilityDetection.exe”
  – c:Program Files (x86)Microsoft SDKs Windows
    Phonev7.0ToolsCapDetectCapabilityDetection.exe

• remove all unnecessary stuff
  – debug libs
  – test data
  –…
getting feedback
you should think about users that will
try to find your app, download and use
• provide keywords for search
• provide contact information in the
  description or inside the app
look up statistics
• number of downloads (AppHub)
  – results come 1 week late
• ads – pubcenter/adMob site
• preemptive stats
  – http://www.preemptive.com/know-
    more/application-monitoring
marketplace test kit
• select WP7.1 project
• [menu] Project->Open Marketplace…
conclusion
• developer focused tools
• powerful UI with Silverlight/XNA
• requires
q&a

Weitere ähnliche Inhalte

Was ist angesagt?

Lesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comLesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.com
ifnu bima
 

Was ist angesagt? (14)

Native apps made easy with Xamarin and cross-platform C#
Native apps made easy with Xamarin and cross-platform C#Native apps made easy with Xamarin and cross-platform C#
Native apps made easy with Xamarin and cross-platform C#
 
Lesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comLesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.com
 
Mobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIsMobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIs
 
How to Avoid app store rejection
How to Avoid app store rejectionHow to Avoid app store rejection
How to Avoid app store rejection
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
Mobile applications chapter 6
Mobile applications chapter 6Mobile applications chapter 6
Mobile applications chapter 6
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps development
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobile
 
What is Java and its example
What is Java and its exampleWhat is Java and its example
What is Java and its example
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!
 
Mobile App Performance Optimization to Improve User Experience - by Supercharge
Mobile App Performance Optimization to Improve User Experience - by SuperchargeMobile App Performance Optimization to Improve User Experience - by Supercharge
Mobile App Performance Optimization to Improve User Experience - by Supercharge
 
Building Highly Customizable iOS Applications on Top of a Core Codebase
Building Highly Customizable iOS Applications on Top of a Core CodebaseBuilding Highly Customizable iOS Applications on Top of a Core Codebase
Building Highly Customizable iOS Applications on Top of a Core Codebase
 
Extending Office with Salesforce Apps and Data
Extending Office with Salesforce Apps and DataExtending Office with Salesforce Apps and Data
Extending Office with Salesforce Apps and Data
 

Andere mochten auch

Владимир Иванов. JIT для Java разработчиков
Владимир Иванов. JIT для Java разработчиковВладимир Иванов. JIT для Java разработчиков
Владимир Иванов. JIT для Java разработчиков
Volha Banadyseva
 
Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...
Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...
Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...
Volha Banadyseva
 
Реклама как модель монетизации мобильных приложений. Екатерина Савицкая
Реклама как модель монетизации мобильных приложений. Екатерина СавицкаяРеклама как модель монетизации мобильных приложений. Екатерина Савицкая
Реклама как модель монетизации мобильных приложений. Екатерина Савицкая
Volha Banadyseva
 
Александр Дзюба. Знать игрока: плейтест на стадии прототипа и позже
Александр Дзюба. Знать игрока: плейтест на стадии прототипа и позжеАлександр Дзюба. Знать игрока: плейтест на стадии прототипа и позже
Александр Дзюба. Знать игрока: плейтест на стадии прототипа и позже
Volha Banadyseva
 
John Adam in ums workshop of critical reviews
John Adam in ums workshop of critical reviewsJohn Adam in ums workshop of critical reviews
John Adam in ums workshop of critical reviews
Noor Setiyadi
 
Konsep club study SCL
Konsep club study SCLKonsep club study SCL
Konsep club study SCL
Noor Setiyadi
 
Евгений Невгень. Оптимизация мета-данных приложения для App Store и Google Play
Евгений Невгень. Оптимизация мета-данных приложения для App Store и Google PlayЕвгений Невгень. Оптимизация мета-данных приложения для App Store и Google Play
Евгений Невгень. Оптимизация мета-данных приложения для App Store и Google Play
Volha Banadyseva
 
Сергей Моренец. Serialization and performance in Java
Сергей Моренец. Serialization and performance in JavaСергей Моренец. Serialization and performance in Java
Сергей Моренец. Serialization and performance in Java
Volha Banadyseva
 
Александр Чекан. 28 правДИвых слайдов о белорусах в интернете
Александр Чекан. 28 правДИвых слайдов о белорусах в интернетеАлександр Чекан. 28 правДИвых слайдов о белорусах в интернете
Александр Чекан. 28 правДИвых слайдов о белорусах в интернете
Volha Banadyseva
 
Настя Хоменкова
Настя ХоменковаНастя Хоменкова
Настя Хоменкова
Volha Banadyseva
 

Andere mochten auch (17)

Владимир Иванов. JIT для Java разработчиков
Владимир Иванов. JIT для Java разработчиковВладимир Иванов. JIT для Java разработчиков
Владимир Иванов. JIT для Java разработчиков
 
Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...
Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...
Дина Сударева. Развитие игровой команды и ее самоорганизация. Роль менеджера ...
 
Ramunas Balukonis. Research DWH
Ramunas Balukonis. Research DWHRamunas Balukonis. Research DWH
Ramunas Balukonis. Research DWH
 
Реклама как модель монетизации мобильных приложений. Екатерина Савицкая
Реклама как модель монетизации мобильных приложений. Екатерина СавицкаяРеклама как модель монетизации мобильных приложений. Екатерина Савицкая
Реклама как модель монетизации мобильных приложений. Екатерина Савицкая
 
Александр Дзюба. Знать игрока: плейтест на стадии прототипа и позже
Александр Дзюба. Знать игрока: плейтест на стадии прототипа и позжеАлександр Дзюба. Знать игрока: плейтест на стадии прототипа и позже
Александр Дзюба. Знать игрока: плейтест на стадии прототипа и позже
 
HMP Mercantile Corporation - The Sourcing Agent
HMP Mercantile Corporation - The Sourcing AgentHMP Mercantile Corporation - The Sourcing Agent
HMP Mercantile Corporation - The Sourcing Agent
 
John Adam in ums workshop of critical reviews
John Adam in ums workshop of critical reviewsJohn Adam in ums workshop of critical reviews
John Adam in ums workshop of critical reviews
 
Знакомство с Windows Phone
 Знакомство с Windows Phone  Знакомство с Windows Phone
Знакомство с Windows Phone
 
Konsep club study SCL
Konsep club study SCLKonsep club study SCL
Konsep club study SCL
 
Voltage
VoltageVoltage
Voltage
 
Евгений Невгень. Оптимизация мета-данных приложения для App Store и Google Play
Евгений Невгень. Оптимизация мета-данных приложения для App Store и Google PlayЕвгений Невгень. Оптимизация мета-данных приложения для App Store и Google Play
Евгений Невгень. Оптимизация мета-данных приложения для App Store и Google Play
 
Сергей Моренец. Serialization and performance in Java
Сергей Моренец. Serialization and performance in JavaСергей Моренец. Serialization and performance in Java
Сергей Моренец. Serialization and performance in Java
 
Manajemen konflik dalam pandangan Islam, Barat dan Jawa
Manajemen konflik dalam pandangan Islam, Barat dan JawaManajemen konflik dalam pandangan Islam, Barat dan Jawa
Manajemen konflik dalam pandangan Islam, Barat dan Jawa
 
Александр Чекан. 28 правДИвых слайдов о белорусах в интернете
Александр Чекан. 28 правДИвых слайдов о белорусах в интернетеАлександр Чекан. 28 правДИвых слайдов о белорусах в интернете
Александр Чекан. 28 правДИвых слайдов о белорусах в интернете
 
Настя Хоменкова
Настя ХоменковаНастя Хоменкова
Настя Хоменкова
 
Валерий Прытков, декан факультета КСиС, БГУИР
Валерий Прытков, декан факультета КСиС, БГУИРВалерий Прытков, декан факультета КСиС, БГУИР
Валерий Прытков, декан факультета КСиС, БГУИР
 
Tadas Pivorius. Married to Cassandra
Tadas Pivorius. Married to CassandraTadas Pivorius. Married to Cassandra
Tadas Pivorius. Married to Cassandra
 

Ähnlich wie Dev days. windows phone development

Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateev
Mihail Mateev
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
Nuxeo
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
Dynatrace
 

Ähnlich wie Dev days. windows phone development (20)

CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architecture
 
Will ServerLess kill containers and Operations
Will ServerLess kill containers and OperationsWill ServerLess kill containers and Operations
Will ServerLess kill containers and Operations
 
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
APIdays Paris 2018 - Will Serverless kill Containers and Operations? Stéphane...
 
Win j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateevWin j svsphonegap-damyan-petev-mihail-mateev
Win j svsphonegap-damyan-petev-mihail-mateev
 
Hack The Future: 10 technical disciplines
Hack The Future: 10 technical disciplinesHack The Future: 10 technical disciplines
Hack The Future: 10 technical disciplines
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
Going Mobile !
Going Mobile !Going Mobile !
Going Mobile !
 
Db trends final
Db trends   finalDb trends   final
Db trends final
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
New Approaches to Faster Oracle Forms System Performance
New Approaches to Faster Oracle Forms System PerformanceNew Approaches to Faster Oracle Forms System Performance
New Approaches to Faster Oracle Forms System Performance
 
EMC World 2016 12 Factor Apps FTW
EMC World 2016 12 Factor Apps FTWEMC World 2016 12 Factor Apps FTW
EMC World 2016 12 Factor Apps FTW
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
Os Solomon
Os SolomonOs Solomon
Os Solomon
 
Super Sizing Youtube with Python
Super Sizing Youtube with PythonSuper Sizing Youtube with Python
Super Sizing Youtube with Python
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
 

Mehr von Volha Banadyseva

Андрей Светлов. Aiohttp
Андрей Светлов. AiohttpАндрей Светлов. Aiohttp
Андрей Светлов. Aiohttp
Volha Banadyseva
 
Мастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в store
Мастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в storeМастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в store
Мастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в store
Volha Banadyseva
 
Бахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App Store
Бахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App StoreБахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App Store
Бахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App Store
Volha Banadyseva
 
Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...
Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...
Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...
Volha Banadyseva
 
Егор Белый. Модели успешной монетизации мобильных приложений
Егор Белый. Модели успешной монетизации мобильных приложенийЕгор Белый. Модели успешной монетизации мобильных приложений
Егор Белый. Модели успешной монетизации мобильных приложений
Volha Banadyseva
 
Станислав Пацкевич. Инструменты аналитики для мобильных платформ
Станислав Пацкевич. Инструменты аналитики для мобильных платформСтанислав Пацкевич. Инструменты аналитики для мобильных платформ
Станислав Пацкевич. Инструменты аналитики для мобильных платформ
Volha Banadyseva
 
Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...
Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...
Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...
Volha Banadyseva
 
Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...
Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...
Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...
Volha Banadyseva
 
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL database
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL databaseСергей Сверчков и Виталий Руденя. Choosing a NoSQL database
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL database
Volha Banadyseva
 

Mehr von Volha Banadyseva (20)

Андрей Светлов. Aiohttp
Андрей Светлов. AiohttpАндрей Светлов. Aiohttp
Андрей Светлов. Aiohttp
 
Сергей Зефиров
Сергей ЗефировСергей Зефиров
Сергей Зефиров
 
Eugene Burmako
Eugene BurmakoEugene Burmako
Eugene Burmako
 
Heather Miller
Heather MillerHeather Miller
Heather Miller
 
Елена Локтева, «Инфопарк»
Елена Локтева, «Инфопарк»Елена Локтева, «Инфопарк»
Елена Локтева, «Инфопарк»
 
Татьяна Милова, директор института непрерывного образования БГУ
Татьяна Милова, директор института непрерывного образования БГУТатьяна Милова, директор института непрерывного образования БГУ
Татьяна Милова, директор института непрерывного образования БГУ
 
Trillhaas Goetz. Innovations in Google and Global Digital Trends
Trillhaas Goetz. Innovations in Google and Global Digital TrendsTrillhaas Goetz. Innovations in Google and Global Digital Trends
Trillhaas Goetz. Innovations in Google and Global Digital Trends
 
Мастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в store
Мастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в storeМастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в store
Мастер-класс Ильи Красинского и Елены Столбовой. Жизнь до и после выхода в store
 
Бахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App Store
Бахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App StoreБахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App Store
Бахрам Исмаилов. Продвижение мобильного приложение - оптимизация в App Store
 
Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...
Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...
Евгений Пальчевский. Что можно узнать из отзывов пользователей в мобильных ма...
 
Евгений Козяк. Tips & Tricks мобильного прототипирования
Евгений Козяк. Tips & Tricks мобильного прототипированияЕвгений Козяк. Tips & Tricks мобильного прототипирования
Евгений Козяк. Tips & Tricks мобильного прототипирования
 
Егор Белый. Модели успешной монетизации мобильных приложений
Егор Белый. Модели успешной монетизации мобильных приложенийЕгор Белый. Модели успешной монетизации мобильных приложений
Егор Белый. Модели успешной монетизации мобильных приложений
 
Станислав Пацкевич. Инструменты аналитики для мобильных платформ
Станислав Пацкевич. Инструменты аналитики для мобильных платформСтанислав Пацкевич. Инструменты аналитики для мобильных платформ
Станислав Пацкевич. Инструменты аналитики для мобильных платформ
 
Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...
Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...
Артём Азевич. Эффективные подходы к разработке приложений. Как найти своего п...
 
Юлия Ерина. Augmented Reality Games: становление и развитие
Юлия Ерина. Augmented Reality Games: становление и развитиеЮлия Ерина. Augmented Reality Games: становление и развитие
Юлия Ерина. Augmented Reality Games: становление и развитие
 
Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...
Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...
Светлана Половинкина. О чём говорит игрок: опросы как инструмент принятия биз...
 
Кирилла Кравченко. Гейминдустрия: эволюция
Кирилла Кравченко. Гейминдустрия: эволюцияКирилла Кравченко. Гейминдустрия: эволюция
Кирилла Кравченко. Гейминдустрия: эволюция
 
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL database
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL databaseСергей Сверчков и Виталий Руденя. Choosing a NoSQL database
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL database
 
Thomas Jensen. Machine Learning
Thomas Jensen. Machine LearningThomas Jensen. Machine Learning
Thomas Jensen. Machine Learning
 
Andrei Kirilenkov. Vertica
Andrei Kirilenkov. VerticaAndrei Kirilenkov. Vertica
Andrei Kirilenkov. Vertica
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Dev days. windows phone development

  • 1. mobile development from developer’s point of view Ivan Kirkorau, EPAM Systems MS Dev Days 2011
  • 2. me
  • 3. reason to go mobile
  • 5. they are different many pages activities navigation components UI <-> code intents data binding callback i-f MVVM (?) MVC (?)
  • 6. ask right questions doesn’t matter “what is greater?” does matter “what suits you best!”
  • 10. #04: lang & libs Objective-C
  • 11. #05: learning curve • Is it hard to learn basics? • How far from basics to professional? • Is it a “pleasant” learning experience? #06: making mistakes • Does it help avoid mistakes? • Is it easy to make your code crash?
  • 12. #07: good-looking UI • Is it easy to create good looking UI? #08: making piece of s… often will devs make crappy • How apps?
  • 13. #09: standard & custom • Is it easy to implement common tasks? – navigating between screens – displaying lists – loading data from web service – parsing xml • Is it easy to customize?
  • 15. codename “Mango” what’s new and what’s old
  • 17. my favorite features • LINQ (to objects, to XML, to HTML) • data binding • lambda expressions having difficulties • everything is asynchronous • BACK button and tombstoning
  • 18. local database • API: LINQ to SQL • Design: in code, attributes • Store: Isolated Storage • article on MSDN
  • 19. background … • AGENT – PeriodicTask (~25 sec) – ResourceIntensiveTask (~10 min) • DOWNLOADING – download/upload up to 5 requests – control execution
  • 20. tiles & notifications • tiles updates • deep linking • multiple tiles per application • number on tile • local toast notification • … notification services
  • 22. marketplace easier than before, but required …fast forward
  • 23. submission walkthrough • app hub account + ready .xap file • description and comments – dev and testing comments • upload images (some unexpected sizes) – should have high quality master images • categories and pricing submit
  • 24. back & back again back = the source of all evil i. can you exit the app? ii. “back” cycles? iii. loss of state and crash iv. press back in unexpected places v. lost handlers/bindings
  • 25. loss of internet if your main action is to download stuff – test the connectivity loss! how to simulate connectivity loss? • connect device to a computer • remove the cable/WiFi – when connected device ALWAYS uses PC internet connection
  • 26. memory limit on devices your app must not use >90Mb at peak. how to get memory tests? • use DeviceStatus check ApplicationPeakMemoryUsage check ApplicationCurrentMemoryUsage
  • 27. exception handling • do not CRASH! • notify the user with a solution: “try again later” “check your internet connection” “contact support@…”
  • 28. black & white • test dark and light themes – some icons may look unexpectedly white – some colors may not correlate well
  • 29. capability testing • use “CapabilityDetection.exe” – c:Program Files (x86)Microsoft SDKs Windows Phonev7.0ToolsCapDetectCapabilityDetection.exe • remove all unnecessary stuff – debug libs – test data –…
  • 30. getting feedback you should think about users that will try to find your app, download and use • provide keywords for search • provide contact information in the description or inside the app
  • 31. look up statistics • number of downloads (AppHub) – results come 1 week late • ads – pubcenter/adMob site • preemptive stats – http://www.preemptive.com/know- more/application-monitoring
  • 32. marketplace test kit • select WP7.1 project • [menu] Project->Open Marketplace…
  • 33. conclusion • developer focused tools • powerful UI with Silverlight/XNA • requires
  • 34. q&a

Hinweis der Redaktion

  1. Добрый день,Меня зовут Иван Киркоров и сегодня я хочу поделиться своим взглядом на мобильную разработку.И немного отойти от корпоративного подхода, а взглянуть глазами одного конкретного разработчика.
  2. Я работаю в компании ЕПАМ уже 5 лет. И сейчас я являюсь руководителем «Мобильной Лаборатории», подразделения, где организуется и происходит обучение мобильных специалистов.Лаборатория стартовала недавно. у меня было только 2 выпуска, под Андроид и под iOS. Но за это время я успел изучить и разобраться с этими платформами и добавить их в копилку знаний к Windows Phone.Так получилось, что всерьез интересоваться WP7 я начал в середине прошлого года и сделал так, чтобы поменять направление деятельности и превратиться в мобильного разработчика.И на это у меня было несколько причин.
  3. Каждый для себя сам решает кем он хочет быть.Для меня ключевым был анонс Windows Phone и возможность программировать на Silverlight.Я давно хотел сделать какой-то свой проект. И я четко осознавал, что единственное место, где можно сделать достойную вещь сейчас (для одного разработчика) – это мобильный рынок. Можно сделать маленький проект с небольшим числом функциональностей и он все равно будет иметь смысл. И не потребуется почти никаких вложений (ни на хостинг, ни на дизайнера, ни на что-то еще).С выходом WP7 я увидел, что могу легко переиспользовать свои скиллы и начать что-то делать уже сейчас.
  4. Сейчас перед каждым будущим, да и текущим мобильным разработчиком стоит выбор. Выбор платформы, который мы посвятим самое дорогое, что у нас есть – наше время (и чаще всего наше свободное время, ибо на работе есть работа и ее надо работать)
  5. Платформы разные.И с точки зрения навигации внутри приложения, и в построении внутренней архитектуры проекта и в подходе к реализации функционала и стандартных задач.Например, в WP7 у нас есть множество условно независимых страниц и между ними делается навигация в обе стороны.Есть мощнейшие механизмы Silverlight – DataTemplates, DataBinding, разделение кода и UiюИ достаточно неопределенный подход к архитектуре.В iOS все намного проще и прямолинейней. Один экран, и множество магического API с View Controller-ами и делегатами.Необычный язык программирования и мир полуавтоматического memory management с reference counting. Несмотря на «магию» и необзодимость многое запоминать и знать – API достаточно хорошо продуман и реализован. Стандартные вещи делать легко, кастомные – ужасно сложно.Андроид имеет отлично продумаю целостную архитектуру платформы, все приложения состоят из 4х типов компонентов, которые могут общаться при помощи Intent-ов. Позволяет сделать в приложении почти все…. жаль, что в основном это все делается не слишком просто. Несмотря на использование Java…В общем они совсем разные.
  6. Но нет смысла спорить кто круче. Меряться фичами или девайсами.Наш вопрос – что мне как разработчику подходит больше.Для этого надо задавать подходящие вопросы и сравнивать соответствующие моменты.
  7. Мобильные платформы очень отличаются от всего остального программирования. Но есть шанс переиспользоватьскиллы которые уже есть.iPhone – точно нет. придется учить с нуля новую платформу, необычный язык. Имея хорошую базу программирования это в принципе несложно. Язык С тоже плюс.Android – кажется, что знание Java должно помочь. Но это увы не так. Андроид совершенно нестандартная платформа. Java дает только синтаксис, но он очень примитивен. Разве что умение пользоваться Eclipse чего-то стоит.WP7 – сложная платформа, но если вы знаете Silverlight – вы практически уже там. В этом огромный плюс, так как можно практически 100% переиспользовать знания по Silverlight.
  8. Здесь можно провести целый час обсуждая инструменты. Но в интернете и так уже достаточно много статей.Вывод один: Microsoft предлагает лучший набор инструментов в интегрированной среде Visual Studio.
  9. У каждой платформы свой подход к документации.В принципе проблемы у всех одинаковые – документация – это reference. Какие методы есть и для чего каждый из них, но как ими правильно пользоваться нигде толком не написано.Guide статьи очень полезны и есть везде.В Андроид документацией можно считать исходный код платформы.Поэтому особую ценность приносят книги и статьи.Стоит отметить, что до определенного Apple заставляла разработчиков быть под NDA и это реально сыграло роль – что статей в нете было очень мало. сейчас ситуация вполне нормальная.
  10. C#не текущий момент самый продвинутый и мощный язык, среди универсальных языков.Java – вероятно самый распространенный и самый целостный язык. Его легко изучить, он базируется на строгих принципах, но этого не достаточно, чтобы программировать. Требуется знать библиотеки.
  11. Теперь вопросы:Общая сложность обучения. Это личный вопрос для каждого.А вот с ошибками – тут все просто. Проще всего сделать ошибку – это работа с памятью в iPhone.
  12. Сделать хорошо можно в любой системе. Проще всего там, где либо заранее многое реализовано(iPhone) или где легко настраивать UI (WP7)А вот сделать некачественное приложение легче всего в Android. А в iPhone или WP7 это получится если не придерживаться UI Guidelines.
  13. И важнейшее. При написании приложений есть набор задач, которые надо решать постоянно.На них тратится большая часть сил и времени.И конечно, требуется сделать что-то нестандартное. Silverlight имеет уникальный механизм DataTemplate. Который позволяет менять внешний вид полностью, не трогая функционал.
  14. На самом деле, при должной сноровке написать можно многое. И в конце концов можно сделать приложение своей мечты…И тут оказывается, что последний шаг не такой и маленький.
  15. http://create.msdn.com/en-US/home/about/app_submission_walkthroughОчень важно подойти серьезно и подготовить адекватное описание и качественные картинки.После сабмита ваше приложение будет тестироваться на стороне MS как автоматическими инструментами, так и ручное тестирование. Причем у них есть Test Plan, и во многом открыт (только я об этом не знал на тот момент) и им можно пользоваться. Application Certification Requirements for Windows Phonehttp://msdn.microsoft.com/en-us/library/hh184843(v=VS.92).aspxТехнические требования и тесты:http://msdn.microsoft.com/en-us/library/hh184840(v=VS.92).aspx
  16. 1)Я 4 раза пересабмитывал приложения из-за того, что не полностью оттестировал back.2) Другое приложение я исправлял дольше чем писал изначально, лишь бы back срабатывал адекватново время возвращения из tombstoningнекоторые биндинги терялись и конечно, могут потеряться eventhandler-ы которые не были пересозданы после возвращения.
  17. use dnp.Counters.dll http://dotnetprofessional.com/blog/post/2010/09/27/Debug-Memory-Counter-for-Windows-Phone-7.aspx (switch off status panel to see it)
  18. http://www.preemptive.com/know-more/application-monitoring