Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Розробка кросплатформенних мобільних аплікацій з Xamarin

Розробка кросплатформенних мобільних аплікацій з Xamarin

Володимир Фученко Software developer at Eleks
Розробка кросплатформенних мобільних аплікацій з Xamarin
З кожним роком мобільні технології все тісніше входять в наше життя. Проте розробка мобільних аплікацій не є надто легкою, адже потрібно підтримувати різні ОС (Android, iOS, Windws Phone). Xamarin – це фреймворк, який покликаний спростити життя розробникам, дозволивши писати кросплатформенні аплікації використовуючи одну мову програмування, C#.

Grygoriy Mykhalyuno

May 17, 2014
Tweet

More Decks by Grygoriy Mykhalyuno

Other Decks in Programming

Transcript

  1. • Актуальність  теми   • Що  таке  Xamarin   •

    Переваги   • Що  всередині?   • Підводні  камені   • Xamarin.Mobile   • Створення  проекту  (Hello  World)   • Нюанси  реалізації  Android  API   • Швидкодія   • Ліцензування   • Демо
  2. The  solution • HTML  5  аплікація   • PhoneGap  й

     інші  схожі  продукти   • Окремі  аплікації  під  кожну  платформу   • Xamarin
  3. What  is  Xamarin? Xamarin  –  це  фреймворк  для  крос-­‐платформної  

    розробки  мобільних  аплікації  з  використанням  C#.
  4. Benefits • Рідний  для  платформи  UI   • Звичне  середовище

     розробки   • Lambdas,  LINQ,  async   • Хороша  швидкодія   • Доступ  до  API  платформи   • Підтримка  Google  Glass
  5. How  it  works? Немає  VM,  Ahead-­‐of-­‐Time   компіляція Компіляція  в

     проміжний   байт-­‐код,  який   інтерпретується  Mono  VM
  6. How  it  works? • Mono  →  Java  –  Mono  Callable

     Wrappers   • Java  →  Mono  –  Android  Callable  Wrappers Доступ  до  апаратних  ресурсів  (аудіо,  графіка,   телефонія)
  7. Runtime  &  Linking • Shared  Runtime  для  розробки  (debug  build)

      • Додавання  Mono  Runtime  в  пакет  аплікації  при   релізі  (release  build)   ! Linking   Сканує  аплікацію  і  перевіряє,  які  бібліотеки  класів   справді  використовуються.  Викидає  зайві  бібліотеки,   що  сприяє  зменшенню  розміру  кінцевого  пакету.
  8. What  is  included? • Xamarin.IOS  –  бібліотека  C#  класів,  що

     надає  доступ   до  iOS  SDK   • Xamarin.Android  –  бібліотека  C#  класів,  що  надає   доступ  до  Android  SDK   • Компілятори  для  обох  платформ   • Xamarin  Studio  IDE   • Плагін  для  Visual  Studio
  9. Pitfalls  (iOS) • Потрібна  машина  з  Mac  OS   •

    XСode  для  дизайну  UI   • Потрібні  девайси   • Обмежена  підтримка  узагальнень  (generics)   • Часом  глючний  дебаг   • Баги   • Документація   • Розмір
  10. Pitfalls  (Android) • Обмежений  UI  дизайнер   • Потрібні  девайси

      • Часом  глючний  дебаг   • Баги   • Документація   • Розмір
  11. Cross-­‐platform? • Data  Layer  –  Сховище  даних   (SQLite)  

    • Data  Access  Layer  –  обгортка   над  сховищем  даних   • Business  Layer  –  бізнес  логіка   аплікації   • Service  Access  Layer  –   взаємодія  з  віддаленими   сервісами   • Application  Layer  –   платформо-­‐залежний  код   • User  Interface  Layer  –   користувацький  інтерфейс
  12. Collections Java  Type System  Type Helper  Class java.util.Set<E> ICollection<T> Android.Runtime.JavaSet<T>

    java.util.List<E> IList<T> Android.Runtime.JavaList<T> java.util.Map<K,V> IDictionary<TKey,TValue> Android.Runtime.JavaDictionary<K,V> java.util.Collection<E> ICollection<T> Android.Runtime.JavaCollection<T> • Стандартні  колекції   • Java  колекції  (java.util)
  13. Properties Java  методи  перетворені  в  проперті  там  де  це  

    потрібно:   • T  getFoo()  і  void  setFoo(T)  →  Foo  {  get;  set;  }   • T  getFoo()  →  Foo  {  get;  }   • void  setFoo(T)  пропертя  не  генерується   • Проперті  не  генеруються,  якщо  їх  тип  –  масив  
  14. Licensing • Starter   • Indie   • Business  

    • Enterprise https://store.xamarin.com/