Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Architektura aplikacji android

1,672 views

Published on

Presentation prepared by Łukasz Andrzejewski
http://stacja.it

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Architektura aplikacji android

  1. 1. Architektura aplikacji Android ŁUKASZ ANDRZEJEWSKI
  2. 2. Prowadzący u Łukasz Andrzejewski u Trener u Programista u Kontakt u l.andrzejewski@sages.com.pl u http://pl.linkedin.com/in/lukaszandrzejewski u https://github.com/landrzejewski
  3. 3. Agenda u Dlaczego architektura jest ważna? u Złożoność aplikacji mobilnych u Czysta architektura u Model View Presenter u Model View ViewModel u Flux u Is about intent, not frameworks
  4. 4. Dlaczego architektura jest ważna? u Określa komponenty składowe aplikacji, ich rolę oraz wzajemne relacje u Ułatwia u skalowanie u testowanie u rozwój / utrzymanie u ponowne wykorzystanie kodu u zrozumienie działania aplikacji
  5. 5. Złożoność aplikacji mobilnych u Wybrane, niebiznesowe aspekty, które należy uwzględnić podczas budowania aplikacji na platformie Android u kompatybilność wsteczna u złożoność API u różnorodność komponentów (cykl życia, przeznaczenie) u zarządzanie stanem i jego synchronizacja (lokalnie, z serwerem) u wielowątkowość u oszczędzanie zasobów (pamięć, procesor, sieć) u integracja z bibliotekami zewnętrznymi …
  6. 6. Architektura na platformie Android u Nie ma oficjalnych rekomendacji / wzorców u W sieci można znaleźć przykłady wykorzystujące różne podejścia u Wielu programistów lekceważy problem (na szczęście to się zmienia)
  7. 7. Architektura Android - „klasycznie” u Podział aplikacji na u Model - realizuje dostęp do danych (baza, REST API) u Widok - prezentuje interfejs, odpowiada za interakcje z użytkownikiem, często zawiera fragmenty logiki biznesowej u Problemy u Duża odpowiedzialność na poziomie warstwy widoku (aktywności i fragmenty stają się bardzo duże i trudne w utrzymaniu) u Testy jednostkowe są praktycznie niemożliwe (logika jest zaszyta na poziomie aktywności i fragmentów) u Trudności z ponownym wykorzystaniem kodu u Niska jakość (duplikacja, zły podział odpowiedzialności, callback hell itd.) u Zdarza się, że część kodu jest przenoszona do klas pomocniczych (tzw. helperów), ale to nie rozwiązuje wszystkich problemów
  8. 8. Czysta architektura (według Uncle Bob) The Dependency Rule Nothing in an inner circle can know anything at all about something in an outer circle. In particular, the name of something declared in an outer circle must not be mentioned by the code in the an inner circle. That includes, functions, classes. variables, or any other named software entity. https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
  9. 9. Warstwy u Mają charakter umowny (może być ich więcej) u Ważny jest kierunek występujących zależności (do wewnątrz) u Zaproponowany podział obejmuje u Entities - obiekty i struktury danych definiujące reguły biznesowe u Use Cases - logika biznesowa specyficzna dla danej aplikacji u Interface Adapters - zbiór adapterów zapewniających konwersję danych pomiędzy Entities i Use Cases, a elementami zewnętrznymi np. warstwą prezentacji, usługami u Frameworks and Drivers - warstwa złożona z narzędzi i frameworków np. baza danych
  10. 10. Model View Presenter (MVP) u Wzorzec architektoniczny związany z warstwą prezentacji u Pochodna wzorca Model View Controller u Dzieli aplikację na u Model - realizuje logikę biznesową i dostęp do danych u Presenter - działa na poziomie modelu oraz widoku (dostarcza dane i przygotowuje je do wyświetlenia) u View - pasywnie wyświetla dane, przekierowuje informacje o zdarzeniach do prezentera
  11. 11. Model View ViewModel u Wzorzec architektoniczny związany z warstwą prezentacji u Pochodna wzorca Model View Controller u Dzieli aplikację na u Model - realizuje logikę biznesową i dostęp do danych u View - definiuje strukturę, rozkład i wygląd widoku u ViewModel - udostępnia model danych (w postaci przygotowanej specjalnie dla widoku) i realizuje logikę związaną z prezentacją
  12. 12. RxAndroid u Implementacja biblioteki Reactive Extensions u Umożliwia tworzenie aplikacji sterowanych zdarzeniami u Jest to rozszerzenie koncepcji wzorca obserwatora u obserwujemy sekwencje zdarzeń (kliknięcie, nowe dane z serwera, zmiana statusu itd.) u sekwencje mogą być kombinowane / filtrowane / mapowane z użyciem operatorów u wszystko w programie jest wynikiem reakcji na zdarzenie (nie ma potrzeby przechowywania stanu) u Zalety u Oderwanie od szczegółów niskopoziomowych takich jak wielowątkowość czy synchronizacja stanu u Alternatywa dla wielokrotnie zagnieżdżanych funkcji typu callback u Automatyczna synchronizacja stanu modelu i widoku (bindowanie) http://reactivex.io
  13. 13. Architektura Flux u Używana przez twórców Facebook’a do budowy aplikacji webowych u Daje się przenieść na poziom Androida i innych platform u Założenia u Jednokierunkowy przepływ danych (bardzo ważne) u Podział aplikacji na warstwy u View - stanowi interfejs aplikacji, tworzy Akcje w wyniku interakcji z użytkownikiem u Dispatcher - odpowiada za przetwarzanie Akcji i dostarczenie ich do magazynów u Store - zarządza stanem (np. danego modułu aplikacji) , reaguje na Akcje, w zależności od aktualnego stanu uruchamia logikę biznesową i informuje przez eventy o jego zmianie, co z kolei powoduje odświeżenie widoku u Akcja - zwykły obiekt, najczęściej zawiera typ i dane związane ze zdarzeniem https://facebook.github.io/flux/docs/overview.html
  14. 14. Flux na Android (w uproszczeniu) u View - aktywności i fragmenty u Dispatcher - event bus u Action - zwykły obiekt u Store - dedykowana klasa / implementacja
  15. 15. Flux na Android - Store u Emituje tylko jeden typ zdarzenia change u Udostępnia API pozwalające na pobranie stanu aplikacji (dzięki czemu możliwa jest aktualizacja widoku) u Nie jest tożsamy z repozytorium - odpowiada za podejmowanie działań w odpowiedzi na zdarzenia oraz śledzenie stanu aplikacji
  16. 16. Flux na Android - operacje asynchroniczne u Działania asynchroniczne powinny być inicjowane z poziomu producenta Akcji u Po otrzymaniu rezultatu kreator przekazuje go w ramach utworzonej akcji do Dispatchera, a ten do Store u W konsekwencji u Store działa synchronicznie (łatwa i zrozumiała logika, proste testowanie) u Wszystkie Akcje są uruchamiane z jednego miejsca (proste szukanie błędów) https://github.com/lgvalle/android-flux-todo-app
  17. 17. Warsztat u Budowa aplikacji w oparciu o różne architektury
  18. 18. Uncle Bob: Architecture is about intent, not frameworks u Nie ma jednej, idealnej architektury u Dla danej aplikacji trzeba podjąć indywidualną decyzję - każde z podejść może mieć plusy i minusy https://github.com/ziem/android-architecture-resources
  19. 19. Chcesz wiedzieć więcej? u Szkolenia pozwalają na indywidualną pracę z każdym uczestnikiem u pracujemy w grupach 4-8 osobowych u program może być dostosowany do oczekiwań grupy u rozwiązujemy i odpowiadamy na indywidualne pytania uczestników u mamy dużo więcej czasu :)
  20. 20. Szkolenia dedykowane dla Ciebie u Interesuje Cię tematyka warsztatu? u Zapoznaj się z programami szkoleń: u Tworzenie aplikacji na platformie Android u Zaawansowane tworzenie aplikacji na platformie Android u Inżynieria odwrotna i techniki zabezpieczania aplikacji na platformie Android u Tworzenie aplikacji Android w języku Kotlin
  21. 21. Wspierają nas

×