SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Windows 8,
життєвий цикл
додатку
Korniyenko
Konstyantyn
Зміна правил гри

  Багато активних
                      Активний лише один додаток
     додатків




Користувач управляє        Система управляє
  життєвим циклом          життєвим циклом
Життєвий цикл додатку
Чому це важливо ???


 Ринок продажу
Запуск (Launch)

• Процес не був
  запущений
• показується
  SplashScreen
Demo
Splash Screen
Splash Screens в процесі активації


• Система надає цей механізм для
  більш цілісного процесу переходу
  до додатка
• Показується в той час, поки
  операційка запускає ваш додаток
• Відображається протягом процесу
  активації
• Колір і картинка вказуються в app
  manifest
• Додаток має запуститися за 15
  сек. Інакше він буде завершений
Розширений Splash Screens

• Деякі програми завантажуються довше
• Створюйте його ідентичним сплеш
  скріну
• Splash Screen API може
  використовуватися для візуалізації
  сплеш скріна вручну
Активация запуском через тайл




                 activated          Додаток
 Юзер клікає
  по тайлу         event           запущено


args.Kind
                 Показується
                Splash Screen
Зміна способу запуску додатку

 Запуск за допомогою    Запуск через тайл, пошук,
        ярлика                 шара, и т.д.
Контракти

            App




  Windows         App
Активація через контракти

•   Додаток активується через
    контракт
•   Запуск, пошук, ShareTarget, і
    т.д..
•   Додаток повинен
    ініціалізувати специфічні         launch
    для контракту дії                              activated
•   надається контекст
                                    shareTarget
                                                  Running App

                                      search
Активация (Activation)

•   Launch
•   Search
•   Share target
•   Cached file
•   Camera
•   Contact picker
•   Device
Активация (Activation)

•   File
•   File open picker
•   File save picker
•   Print task
•   Protocol
Активация додатку
async protected override void
OnLaunched(LaunchActivatedEventArgs args)
{
    switch (args.Kind)
    {
        case ActivationKind.Launch:
        break;
        case ActivationKind.Search:
        break;
        case ActivationKind.ShareTarget:
        break;
    }
}
Demo
Search
Зупинення(Suspend)

• Перемикання користувачем
• Низький заряд батареї
Suspend – погляд з середини

• Suspended додатки не обслуговуються
  ядром системи
• Ніякого споживання ресурсів CPU, Disk
  або Network
• Всі потоки призупиняються
Suspend – погляд з середини

• Додаток залишається в пам'яті
• Система перевіряє чи додаток не
  знаходиться в критичній секції, що може
  привести до виникнення
  взаємоблокування
• Додаток негайно відновлює свою роботу,
  коли користувач активує його
Дані додатку (Application Data)

• Сесійні дані
• Налаштування користувача
• І т.д.
Збереження даних додатку

• Локальне сховище
 • Settings
 • Files
• Віддалене сховище (roaming)
• Тимчасове сховище
Demo
Save Settings
Відновлення(Resume )

• Переключення
  користувачем
• Батарея
  заряжаєтся
Завершення (Close)

• Alt + F4
Завершення (Terminate)

• Процес
  завершується
• Немає жодних
  повідомлень про
  цю подію
Коли виникає аварійне завершення ?

•   Системі потрібно більше пам'яті
•   Користувач перемикає акаунти
•   Завершення роботи системи
•   Помилка додатка
Best Practices работи із станом


     Сценарій       Що робити…
Работа з додатком   Інкрементальне збереження даних
                    користувача
Suspending          Зберегти місце перебування
                    юзера(наприклад відкрита сторінка)
Activated           Відновити сесію юзера так, як ніби
                    він не залишав програми
Resuming            Нічого не робити
Работа додатку




 Старт
додатку




 Splash
 screen
Summary
 Нова філософія Windows базується на
  тому як і коли програми має
  працювати
 ОС управляє життєвим циклом додатка
 Активація програми відбувається за
  допомогою контрактів
 Зберігайте ваш додаток живим:
    Зберігайте і відновлюйте стан
    Використовуйте живі тайли
Suspend best practices
 Зберігайте   стан швидко - у вас є всього
  5 сек.
 Розглядайте варіант завершення
  програми - зберігайте сесійні дані
  користувача
 Не тримайте загальні системні ресурси
  (файли, диски, мережа, і т.д.)
 Зберігайте дані програми
  інкрементально, до зупинки
Activation best practices
 Активуйте   додаток швидко!
 Ініціалізуйте додаток
 Відкладіть виконання завдань настільки,
  наскільки це можливо
 Запамятовуйте, де користувач
  знаходився
 Показуйте розширений splash screen,
  якщо вам потрібно більше 15 сек. для
  активації
Корисні посилання
 Життєвий  цикл додатку (MSDN)
 http://www.buildwindows.com/
 Building Metro style apps forum
Дякую

Weitere ähnliche Inhalte

Andere mochten auch

Overview of Google spreadsheet API for Java by Nazar Kostiv
Overview of Google spreadsheet API for Java by Nazar Kostiv Overview of Google spreadsheet API for Java by Nazar Kostiv
Overview of Google spreadsheet API for Java by Nazar Kostiv IT Booze
 
Erlang - concurrency-oriented programming by Serhiy Yvtyshenko
Erlang - concurrency-oriented programming by Serhiy YvtyshenkoErlang - concurrency-oriented programming by Serhiy Yvtyshenko
Erlang - concurrency-oriented programming by Serhiy YvtyshenkoIT Booze
 
The Holocaust Notes
The Holocaust NotesThe Holocaust Notes
The Holocaust NotesMayanaJoseph
 
Online Petrol Monitoring System: A community Web GIS and SMS application
Online Petrol Monitoring System: A community Web GIS and SMS applicationOnline Petrol Monitoring System: A community Web GIS and SMS application
Online Petrol Monitoring System: A community Web GIS and SMS applicationErick Omwandho
 
Lost in Transaction Final Presentation
Lost in Transaction Final PresentationLost in Transaction Final Presentation
Lost in Transaction Final PresentationSiri Johansson
 
Microsoft Dynamics CRM Overview by Anatoly Kvasnikov
Microsoft Dynamics CRM Overview by Anatoly KvasnikovMicrosoft Dynamics CRM Overview by Anatoly Kvasnikov
Microsoft Dynamics CRM Overview by Anatoly KvasnikovIT Booze
 
Let's teach your child programming with Greenfoot by Oleg Pashkevych
Let's teach your child programming with Greenfoot by Oleg Pashkevych Let's teach your child programming with Greenfoot by Oleg Pashkevych
Let's teach your child programming with Greenfoot by Oleg Pashkevych IT Booze
 
Introduction to mercurial
Introduction to mercurialIntroduction to mercurial
Introduction to mercurialIT Booze
 
Об'єктно-орієнтована платформа Windows
Об'єктно-орієнтована платформа WindowsОб'єктно-орієнтована платформа Windows
Об'єктно-орієнтована платформа WindowsЕкатерина Осадчая
 
КОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWS
КОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWSКОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWS
КОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWSЕкатерина Осадчая
 
Безпека в інтернеті
Безпека в інтернетіБезпека в інтернеті
Безпека в інтернетіLida9
 
9 урок теорія файлова система
9 урок теорія файлова система9 урок теорія файлова система
9 урок теорія файлова системаAndy Levkovich
 
налаштування Wi fi мережі за допомогою стандартних програм windows
налаштування Wi fi мережі за допомогою стандартних програм windowsналаштування Wi fi мережі за допомогою стандартних програм windows
налаштування Wi fi мережі за допомогою стандартних програм windowsdemo1420
 

Andere mochten auch (20)

Git
GitGit
Git
 
Overview of Google spreadsheet API for Java by Nazar Kostiv
Overview of Google spreadsheet API for Java by Nazar Kostiv Overview of Google spreadsheet API for Java by Nazar Kostiv
Overview of Google spreadsheet API for Java by Nazar Kostiv
 
Erlang - concurrency-oriented programming by Serhiy Yvtyshenko
Erlang - concurrency-oriented programming by Serhiy YvtyshenkoErlang - concurrency-oriented programming by Serhiy Yvtyshenko
Erlang - concurrency-oriented programming by Serhiy Yvtyshenko
 
The Holocaust Notes
The Holocaust NotesThe Holocaust Notes
The Holocaust Notes
 
Online Petrol Monitoring System: A community Web GIS and SMS application
Online Petrol Monitoring System: A community Web GIS and SMS applicationOnline Petrol Monitoring System: A community Web GIS and SMS application
Online Petrol Monitoring System: A community Web GIS and SMS application
 
Lost in Transaction Final Presentation
Lost in Transaction Final PresentationLost in Transaction Final Presentation
Lost in Transaction Final Presentation
 
Microsoft Dynamics CRM Overview by Anatoly Kvasnikov
Microsoft Dynamics CRM Overview by Anatoly KvasnikovMicrosoft Dynamics CRM Overview by Anatoly Kvasnikov
Microsoft Dynamics CRM Overview by Anatoly Kvasnikov
 
Let's teach your child programming with Greenfoot by Oleg Pashkevych
Let's teach your child programming with Greenfoot by Oleg Pashkevych Let's teach your child programming with Greenfoot by Oleg Pashkevych
Let's teach your child programming with Greenfoot by Oleg Pashkevych
 
Introduction to mercurial
Introduction to mercurialIntroduction to mercurial
Introduction to mercurial
 
Об'єктно-орієнтована платформа Windows
Об'єктно-орієнтована платформа WindowsОб'єктно-орієнтована платформа Windows
Об'єктно-орієнтована платформа Windows
 
IIHE-Lecture-3_2
IIHE-Lecture-3_2IIHE-Lecture-3_2
IIHE-Lecture-3_2
 
Windows 7 Module 1.0
Windows 7 Module 1.0Windows 7 Module 1.0
Windows 7 Module 1.0
 
КОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWS
КОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWSКОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWS
КОНЦЕПЦІЯ ОПЕРАЦІЙНИХ СИСТЕМ WINDOWS
 
Безпека в інтернеті
Безпека в інтернетіБезпека в інтернеті
Безпека в інтернеті
 
9 урок теорія файлова система
9 урок теорія файлова система9 урок теорія файлова система
9 урок теорія файлова система
 
налаштування Wi fi мережі за допомогою стандартних програм windows
налаштування Wi fi мережі за допомогою стандартних програм windowsналаштування Wi fi мережі за допомогою стандартних програм windows
налаштування Wi fi мережі за допомогою стандартних програм windows
 
урок 7
урок 7урок 7
урок 7
 
Mikolay4ik
Mikolay4ikMikolay4ik
Mikolay4ik
 
презентация1
презентация1презентация1
презентация1
 
урок 4
урок 4урок 4
урок 4
 

Ähnlich wie Windows 8 and Metro design applications

Inf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klasInf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klasAllaGureva
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)Exoft LLC
 
System programing module 1
System programing module 1System programing module 1
System programing module 1Andrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
Informatyka-9-klas-Ryvkind-2022 (1).pdf
Informatyka-9-klas-Ryvkind-2022 (1).pdfInformatyka-9-klas-Ryvkind-2022 (1).pdf
Informatyka-9-klas-Ryvkind-2022 (1).pdfssuser59c0a2
 
Anton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQAnton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQDakiry
 
informatyka_9_klas_ryvkind_2022.pdf
informatyka_9_klas_ryvkind_2022.pdfinformatyka_9_klas_ryvkind_2022.pdf
informatyka_9_klas_ryvkind_2022.pdfssuser59c0a2
 
MPD2011 | Роман Мазур "С чего начать Android разработчику"
MPD2011 | Роман Мазур "С чего начать Android разработчику"MPD2011 | Роман Мазур "С чего начать Android разработчику"
MPD2011 | Роман Мазур "С чего начать Android разработчику"ITGinGer
 
презентація поняття події
презентація   поняття подіїпрезентація   поняття події
презентація поняття подіїOlga Sokolik
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android StorageMaksym Davydov
 
Automation as a Way to Do Routine Work Quickly and Effortlessly
Automation as a Way to Do Routine Work Quickly and EffortlesslyAutomation as a Way to Do Routine Work Quickly and Effortlessly
Automation as a Way to Do Routine Work Quickly and EffortlesslyGlobalLogic Ukraine
 
середовище виконання алгоритму
середовище виконання алгоритмусередовище виконання алгоритму
середовище виконання алгоритмуЗахарова Олена
 

Ähnlich wie Windows 8 and Metro design applications (20)

Inf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klasInf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klas
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
 
6 клас урок 4
6 клас урок 46 клас урок 4
6 клас урок 4
 
Java script + extjs
Java script + extjsJava script + extjs
Java script + extjs
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
1 4
1 41 4
1 4
 
04
0404
04
 
dfgInf tema 1_urok_4_6_klas
dfgInf tema 1_urok_4_6_klasdfgInf tema 1_urok_4_6_klas
dfgInf tema 1_urok_4_6_klas
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
Informatyka-9-klas-Ryvkind-2022 (1).pdf
Informatyka-9-klas-Ryvkind-2022 (1).pdfInformatyka-9-klas-Ryvkind-2022 (1).pdf
Informatyka-9-klas-Ryvkind-2022 (1).pdf
 
Anton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQAnton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQ
 
6 клас урок 4
6 клас урок 46 клас урок 4
6 клас урок 4
 
informatyka_9_klas_ryvkind_2022.pdf
informatyka_9_klas_ryvkind_2022.pdfinformatyka_9_klas_ryvkind_2022.pdf
informatyka_9_klas_ryvkind_2022.pdf
 
6 клас (урок№4)
6 клас (урок№4)6 клас (урок№4)
6 клас (урок№4)
 
Android Storage
Android StorageAndroid Storage
Android Storage
 
MPD2011 | Роман Мазур "С чего начать Android разработчику"
MPD2011 | Роман Мазур "С чего начать Android разработчику"MPD2011 | Роман Мазур "С чего начать Android разработчику"
MPD2011 | Роман Мазур "С чего начать Android разработчику"
 
презентація поняття події
презентація   поняття подіїпрезентація   поняття події
презентація поняття події
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android Storage
 
Automation as a Way to Do Routine Work Quickly and Effortlessly
Automation as a Way to Do Routine Work Quickly and EffortlesslyAutomation as a Way to Do Routine Work Quickly and Effortlessly
Automation as a Way to Do Routine Work Quickly and Effortlessly
 
середовище виконання алгоритму
середовище виконання алгоритмусередовище виконання алгоритму
середовище виконання алгоритму
 

Kürzlich hochgeladen

Тестування Blockchain - Що там можна тестувати?
Тестування  Blockchain - Що там можна тестувати?Тестування  Blockchain - Що там можна тестувати?
Тестування Blockchain - Що там можна тестувати?Oleksandr Romanov
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym KindritskyiFwdays
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...Fwdays
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...Fwdays
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil TopchiiFwdays
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro SpodaretsFwdays
 

Kürzlich hochgeladen (6)

Тестування Blockchain - Що там можна тестувати?
Тестування  Blockchain - Що там можна тестувати?Тестування  Blockchain - Що там можна тестувати?
Тестування Blockchain - Що там можна тестувати?
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 

Windows 8 and Metro design applications

  • 2.
  • 3. Зміна правил гри Багато активних Активний лише один додаток додатків Користувач управляє Система управляє життєвим циклом життєвим циклом
  • 5. Чому це важливо ??? Ринок продажу
  • 6. Запуск (Launch) • Процес не був запущений • показується SplashScreen
  • 8. Splash Screens в процесі активації • Система надає цей механізм для більш цілісного процесу переходу до додатка • Показується в той час, поки операційка запускає ваш додаток • Відображається протягом процесу активації • Колір і картинка вказуються в app manifest • Додаток має запуститися за 15 сек. Інакше він буде завершений
  • 9. Розширений Splash Screens • Деякі програми завантажуються довше • Створюйте його ідентичним сплеш скріну • Splash Screen API може використовуватися для візуалізації сплеш скріна вручну
  • 10. Активация запуском через тайл activated Додаток Юзер клікає по тайлу event запущено args.Kind Показується Splash Screen
  • 11. Зміна способу запуску додатку Запуск за допомогою Запуск через тайл, пошук, ярлика шара, и т.д.
  • 12. Контракти App Windows App
  • 13. Активація через контракти • Додаток активується через контракт • Запуск, пошук, ShareTarget, і т.д.. • Додаток повинен ініціалізувати специфічні launch для контракту дії activated • надається контекст shareTarget Running App search
  • 14. Активация (Activation) • Launch • Search • Share target • Cached file • Camera • Contact picker • Device
  • 15. Активация (Activation) • File • File open picker • File save picker • Print task • Protocol
  • 16. Активация додатку async protected override void OnLaunched(LaunchActivatedEventArgs args) { switch (args.Kind) { case ActivationKind.Launch: break; case ActivationKind.Search: break; case ActivationKind.ShareTarget: break; } }
  • 19. Suspend – погляд з середини • Suspended додатки не обслуговуються ядром системи • Ніякого споживання ресурсів CPU, Disk або Network • Всі потоки призупиняються
  • 20. Suspend – погляд з середини • Додаток залишається в пам'яті • Система перевіряє чи додаток не знаходиться в критичній секції, що може привести до виникнення взаємоблокування • Додаток негайно відновлює свою роботу, коли користувач активує його
  • 21. Дані додатку (Application Data) • Сесійні дані • Налаштування користувача • І т.д.
  • 22. Збереження даних додатку • Локальне сховище • Settings • Files • Віддалене сховище (roaming) • Тимчасове сховище
  • 24. Відновлення(Resume ) • Переключення користувачем • Батарея заряжаєтся
  • 26. Завершення (Terminate) • Процес завершується • Немає жодних повідомлень про цю подію
  • 27. Коли виникає аварійне завершення ? • Системі потрібно більше пам'яті • Користувач перемикає акаунти • Завершення роботи системи • Помилка додатка
  • 28. Best Practices работи із станом Сценарій Що робити… Работа з додатком Інкрементальне збереження даних користувача Suspending Зберегти місце перебування юзера(наприклад відкрита сторінка) Activated Відновити сесію юзера так, як ніби він не залишав програми Resuming Нічого не робити
  • 30. Summary  Нова філософія Windows базується на тому як і коли програми має працювати  ОС управляє життєвим циклом додатка  Активація програми відбувається за допомогою контрактів  Зберігайте ваш додаток живим:  Зберігайте і відновлюйте стан  Використовуйте живі тайли
  • 31. Suspend best practices  Зберігайте стан швидко - у вас є всього 5 сек.  Розглядайте варіант завершення програми - зберігайте сесійні дані користувача  Не тримайте загальні системні ресурси (файли, диски, мережа, і т.д.)  Зберігайте дані програми інкрементально, до зупинки
  • 32. Activation best practices  Активуйте додаток швидко!  Ініціалізуйте додаток  Відкладіть виконання завдань настільки, наскільки це можливо  Запамятовуйте, де користувач знаходився  Показуйте розширений splash screen, якщо вам потрібно більше 15 сек. для активації
  • 33. Корисні посилання  Життєвий цикл додатку (MSDN)  http://www.buildwindows.com/  Building Metro style apps forum