SlideShare a Scribd company logo
Instalacja, przegląd, przykład gry i przyszłość framework’u
Projektowanie aplikacji w
Xamarin.Forms
Czym jest Xamarin?
Xamarin jest frameworkiem, która rozszerza C# .NET o możliwości tworzenia
aplikacji mobilnych.
Można go wykorzystać na dwa sposoby:
● Xamarin (Native) - bardzo podobne do programowania GUI w Java’ie.
Pozwala programować aplikacje tylko na jedną platformę
● Xamarin.Forms - programowanie frontend’u podobne jak w aplikacjach WPF,
czyli wykorzystując język XAML. Pozwala na programowanie aplikacji między
platformowych na Android, iOS czy Windows
Logo Xamarin
Instalacja
Aby programować w Xamarin.Forms
potrzebujemy odpowiedniego IDE.
Najwygodniejszym do tego jest Visual Studio
2019, jednakże zadziała również wersja 2017,
jak i wersja preview 2022.
Do każdej z powyższych wersji należy jednak
doinstalować paczkę opracowywania aplikacji
mobilnych z sekcji Komputery i urządzenia
przenośne.
Potrzebna paczka zaznaczona na czerwono
Instalacja
Dodatkowo potrzebny jest .NET Framework 4.5 (powinien być zainstalowany domyślnie wraz z instalacją
Visual Studio).
Xamarin.Forms wymaga również posiadania zainstalowanego Java Development Kit (JDK).
Budowanie, wdrażanie i debugowanie
Każdy projekt Xamarin.Forms może być debugowany na trzech platformach:
● Android
● Windows
● iOS
Debugowanie aplikacji na Nasz system operacyjny nie jest problemem (windows na windows, iOS na iOS),
gdy jednak chcemy przenieść naszą aplikację na telefon z Androidem należy posiadać telefon z dostępem
do opcji programistycznych, czy też emulować ten system bezpośrednio na naszym komputerze.
Emulowanie systemu Android
Do emulowania urządzenia Android należy pobrać w Visual Studio zestawy SDK platformy na jakiej
chcemy pracować oraz utworzyć emulacje telefonu. Opcje te są dostępne są na górnym pasku IDE.
Ikona po lewej pozwala na zarządzanie pobranymi emulatorami i stworzenie nowych, ikona po prawej
pozwala na pobranie zestawów SDK.
Zestawy SDK
Z zakładki Platformy, należy wybrać minimalnie jedną wersję
systemu API.
Z zakładki Narzędzia, należy wybrać wszystkie zaznaczone
powyżej przedmioty (niektóre już mogą być).
Tworzenie nowego emulatora
Okno zarządzania emulatorami urządzeń Android. Domyślnie będzie puste i trzeba będzie utworzyć nowy
klikając guzik + Nowy
Tworzenie nowego emulatora
Po kliknięciu guzika + Nowy, otworzy się okno z wieloma opcjami,
które można zmieniać jak tylko się chce, ale na początek powinny
wystarczyć domyślne ustawienia.
Przyspieszenie sprzętowe emulatora!!!
Emulacja Androida “na sucho” jest bardzo pochłaniająca zasoby i zwalniająca procesy naszej maszyny,
ponieważ nasz komputer nie ma dokładnych instrukcji jak to robić.
Po to powstało przyspieszenie sprzętowe wydajności emulatora przez producentów procesorów czy
przez samych programistów systemów operacyjnych. Jest to jednak zależne od naszego systemu
operacyjnego i producenta procesora w naszej maszynie, więc aby zainstalować poprawne sterowniki
trzeba skierować się na tę stronę.
W moim przypadku (Windows 10 z procesorem Intela) należało zainstalować HAXM dostępny na stronie
Intela.
Praca na fizycznym urządzeniu Android
Aby debugować i wdrażać aplikację na własne urządzenie z systemem Android, należy mieć dostęp do
opcji programistycznych i w zależności od nazewnictwa mieć zaznaczone opcje:
● Debugowanie USB
● Instaluj przez USB
Gdy podłączymy telefon do komputera przez port USB Visual Studio powinien go wykryć i dać możliwość
na wdrażanie naszej aplikacji na niego.
Nowa aplikacja w
Xamarin.Forms
Projekty
Każde rozwiązanie projektu w
Xamarin.Forms składa się
przynajmniej z dwóch projektów.
Projekt #1 jest zawsze klasą
biblioteczną, z której korzysta
każdy inny projekt. Są tam strony
aplikacji, klasy i ustawienia.
Projekty #2-#4 to projekty dla
danych systemów operacyjnych.
Różnią się plikami, które
odpowiadają za ustawienia
końcowe projektu (minimalne
wymaga, wykorzystanie funkcji itp.)
Rozwiązanie
Projekt#1
#3
#2
#4
Projekty na różne systemy operacyjne muszą istnieć, gdyż mają
oddzielne opcje, np. opcje formatu pliku:
● Android: apk, aab
● Windows: exe
Systemy różnią się również standardami uprawnień. Aby
utworzyć plik używając metody File.Create(...); potrzebujemy
uprawnienia:
● Android: WRITE_EXTERNAL_STORAGE
● Windows: Magazyn wymienny
Wynikają z tego, iż różne sklepy (Google Play, Sklep Windows)
inaczej odczytują z aplikacji wymagania, ponieważ użytkownicy
muszą o nich wiedzieć przed instalacją oprogramowania.
Projekty
Uruchomienie
Pierwszy kod odpowiadający na inicjalizację
naszej aplikacji następuje w pliku App.xaml.cs w
klasie bibliotecznej.
Tuż po tym następuje zmiana ekranu naszej
aplikacji na klasę MainPage.
Uruchomienie - podgląd
Gdy zajrzymy do pliku MainPage.xaml - który jest domyślną stroną główną naszej aplikacji - osoby, które
miały styczność z framework’iem WPF zauważą, że nie ma tutaj interaktywnego okna z podglądem
naszego programu.
Aby mieć interaktywny wgląd do naszego programu wprowadzono XAML Hot Reload, który - gdy
aplikacja jest uruchomiona - przeładuje każdą zmianę na ekran aplikacji, jeśli nie znajdzie w niej błędów.
Domyślna strona główna, na której nie ma podglądu
Uruchomiony na
emulatorze projekt
przed zmianą strony.
Główna
strona po
zastosowaniu
paru zmian.
Program był
ciągle
uruchomiony!
Wielojęzyczność
Język główny
Pisanie tekstu w ojczystym języku jest najwygodniejszą
formą pisania tekstu do aplikacji. Jednak, aby powiększyć
ilość potencjalnych użytkowników warto pisać aplikację
domyślnie w języku angielskim.
Angielski jest jednym z najpopularniejszych języków,
dlatego pisanie w nim naszej aplikacji rozszerzy ilość
regionów, na jakie może być dostępna.
Najpopularniejsze języki świata. Źródło.
Języki
Aby nasza aplikacja była wielojęzyczna, czyli obsługiwała więcej niż tylko jeden język, należy dodać do
niej Plik zasobów, czyli plik o rozszerzeniu .resx.
Dawniej, aby aplikacja obsługiwała ten format należało dodawać specjalne paczki do naszego projektu,
teraz jednak wszystko dzieje się automatycznie.
Pierwszy plik .resx będzie domyślnym językiem i może mieć dowolną nazwę np.: lang.resx i będzie
stosowany do każdego regionu, dla którego nie ma pliku zasobów.
Jeżeli domyślnym językiem naszej aplikacji będzie angielski, to by dodać obsługę polskiego należy
stworzyć plik o tej samej nazwie z dodatkiem polskiego dwu znakowego kodu ISO 3166:
● lang.pl.resx
● lang.en.resx - dla angielskiego
● lang.de.resx - dla niemieckiego
Domyślna paczka językowa (angielski)
Paczka językowa dostępna tylko w regionie pl (polski)
Eksplorator rozwiązań z
dodanymi obydwoma
plikami zasobów w folderze
Lang
Aplikowanie języków
Pliki zasobów resx można używać w dwóch miejscach: na stronie XAML jak i code behind strony XAML.CS
1. Aby użyć pliku zasobów językowych w pliku strony XAML, należy dodać odniesienie do niego jako nowy
xml namespace (xmlns) o dowolnej nazwie np.:
xmlns:lang=”clr-namespace:nazwa_naszej_aplikacji . folder_w_którym_jest_plik_resx”
2. Z code behind strony nie trzeba tworzyć referencji do katalogu, w którym jest plik. Można od razu użyć
wartości pliku zasobów jak właściwości klasy
folder_w_którym_jest_plik_resx . nazwa_pliku . wartość
Strona główna aplikacji. Na czerwono zaznaczona jest referencja do folderu.
Na pomarańczowo zaznaczone jest wykorzystane pole z pliku
Code behind głównej strony. Na czerwono zaznaczone jest odwołanie do właściwości pliku - jak do właściwości klasy -
w metodzie DisplayAlert().
Po lewo aplikacja Windows w lokalizacji polskiej, po prawej aplikacja Android w lokalizacji angielskiej.
Przykład aplikacji
Gra w kości
Kurnik/Kniffel/Gra w kości
Jedno i wieloosobowa gra, z automatycznym zapisem
postępu gry jak i zapisem najlepszego wyniku. Dostępna w
języku polskim i angielskim.
Dwa tryby gry:
● fizyczna kostka
● wirtualna kostka
Dostępna na systemy Android na sklepie Google Play
Przyszłość Xamarin.Forms
Przestarzałe?
Wraz z premierą Visual Studio 2022 ma nadejść nowy .NET 6, w którego skład będzie wchodziło .NET
MAUI (Multi-platform App UI).
MAUI ma być rozszerzeniem funkcji Xamarin.Forms zamkniętym tylko w jednym projekcie z
ustawieniami dla wszystkich platform, a wygląd elementów ma być bardziej uniezależniony od systemu.
Będzie miało lepszy dostęp i zakres gestów, dostęp do czujników (żyroskop, kompas).
Jednak tworzenie aplikacji w MAUI ma być bardzo podobnym do Xamarin.Forms. Dalej strony będą
plikiem XAML z code behind XAML.CS i dalej będzie ta sama problematyka języków.
Dziękuje za uwagę
Maciej Kuchcik

More Related Content

What's hot

Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Piotr Nalepa
 
Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]
Droptica
 
Websockety w PHP
Websockety w PHPWebsockety w PHP
Websockety w PHP
The Software House
 
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
Droptica
 
Nowości w drupal 9 i 10 [PL]
Nowości w drupal 9 i 10 [PL]Nowości w drupal 9 i 10 [PL]
Nowości w drupal 9 i 10 [PL]
Droptica
 
Symfony Flex - Nowe, efektywne podejście do budowania aplikacji w Symfony
Symfony Flex - Nowe, efektywne podejście do budowania aplikacji w SymfonySymfony Flex - Nowe, efektywne podejście do budowania aplikacji w Symfony
Symfony Flex - Nowe, efektywne podejście do budowania aplikacji w Symfony
Krzysztof Wędrowicz
 
Webinar symfony
Webinar symfonyWebinar symfony
Webinar symfony
Michał Makaruk
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
Tomasz Dziuda
 
WEBINAR 3 # Pierwszy test automatyczny
WEBINAR 3 # Pierwszy test automatycznyWEBINAR 3 # Pierwszy test automatyczny
WEBINAR 3 # Pierwszy test automatyczny
testuj.pl
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tomasz Borowski
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minut
Tomasz Borowski
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]
Droptica
 
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
HighSolutions Sp. z o.o.
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
Tomasz Borowski
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
The Software House
 
PIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress FrameworkPIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress Framework
Szymon Kapturkiewicz
 
WP-Cron - WordUp Kraków Zima 2014
WP-Cron - WordUp Kraków Zima 2014WP-Cron - WordUp Kraków Zima 2014
WP-Cron - WordUp Kraków Zima 2014Maciek Kuchnik
 
Niezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz SałachNiezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz Sałach
Bartosz Sałach
 
Angular10302021
Angular10302021Angular10302021

What's hot (19)

Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...Developing native-like Windows application using JavaScript, SSE, eZ Platform...
Developing native-like Windows application using JavaScript, SSE, eZ Platform...
 
Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]Devel - przegląd możliwości modułu [PL]
Devel - przegląd możliwości modułu [PL]
 
Websockety w PHP
Websockety w PHPWebsockety w PHP
Websockety w PHP
 
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
Drupal Commerce - konfiguracja prostego sklepu internetowego [PL]
 
Nowości w drupal 9 i 10 [PL]
Nowości w drupal 9 i 10 [PL]Nowości w drupal 9 i 10 [PL]
Nowości w drupal 9 i 10 [PL]
 
Symfony Flex - Nowe, efektywne podejście do budowania aplikacji w Symfony
Symfony Flex - Nowe, efektywne podejście do budowania aplikacji w SymfonySymfony Flex - Nowe, efektywne podejście do budowania aplikacji w Symfony
Symfony Flex - Nowe, efektywne podejście do budowania aplikacji w Symfony
 
Webinar symfony
Webinar symfonyWebinar symfony
Webinar symfony
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
 
WEBINAR 3 # Pierwszy test automatyczny
WEBINAR 3 # Pierwszy test automatycznyWEBINAR 3 # Pierwszy test automatyczny
WEBINAR 3 # Pierwszy test automatyczny
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minut
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]
 
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
Laravel Poznań Meetup #12 - "Laravel 6.0 - co nowego?"
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
PIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress FrameworkPIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress Framework
 
WP-Cron - WordUp Kraków Zima 2014
WP-Cron - WordUp Kraków Zima 2014WP-Cron - WordUp Kraków Zima 2014
WP-Cron - WordUp Kraków Zima 2014
 
Niezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz SałachNiezbędnik administratora - prezentacja Bartosz Sałach
Niezbędnik administratora - prezentacja Bartosz Sałach
 
Angular10302021
Angular10302021Angular10302021
Angular10302021
 

Similar to Application in Xamarin.Forms

Tworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows PhoneTworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows Phone
3camp
 
Środowisko android studio - podstawy
Środowisko android studio - podstawyŚrodowisko android studio - podstawy
Środowisko android studio - podstawy
PROSKAR
 
TIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMI
TIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMITIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMI
TIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMI
Fundacja CALM edu Grzegorz Czekała
 
Pierwszy program w c# cezary walencik
Pierwszy program w c# cezary walencikPierwszy program w c# cezary walencik
Pierwszy program w c# cezary walencikCezary Walenciuk
 
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Bartlomiej Zass
 
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
Infoshare
 
Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012
Cezary Walenciuk
 
Program do pisania? Największa lista w sieci 2013 !
Program do pisania? Największa lista w sieci 2013 !Program do pisania? Największa lista w sieci 2013 !
Program do pisania? Największa lista w sieci 2013 !
michalip
 
Jak zmienić język w Windows 7?
Jak zmienić język w Windows 7?Jak zmienić język w Windows 7?
Jak zmienić język w Windows 7?
michalip
 
Visual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysqlVisual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysqlPrzemysław Wolny
 
Delphi 31-przydatnych-programow
Delphi 31-przydatnych-programowDelphi 31-przydatnych-programow
Delphi 31-przydatnych-programowPrzemysław Wolny
 
Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
Kelut
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
PHPCon Poland
 
Hyperion - wystarczy jeden shake
Hyperion - wystarczy jeden shakeHyperion - wystarczy jeden shake
Hyperion - wystarczy jeden shake
kraqa
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
Future Processing
 
Systemy operacyjne
Systemy operacyjneSystemy operacyjne
Systemy operacyjne
Artur Pluta
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieMikołaj Olszewski
 
Rodzaje i zastosowanie oprogramowania użytkowego
Rodzaje i zastosowanie oprogramowania użytkowegoRodzaje i zastosowanie oprogramowania użytkowego
Rodzaje i zastosowanie oprogramowania użytkowego
Szymon Konkol - Publikacje Cyfrowe
 

Similar to Application in Xamarin.Forms (20)

Tworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows PhoneTworzenie wydajnych aplikacji na platformę Windows Phone
Tworzenie wydajnych aplikacji na platformę Windows Phone
 
Środowisko android studio - podstawy
Środowisko android studio - podstawyŚrodowisko android studio - podstawy
Środowisko android studio - podstawy
 
TIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMI
TIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMITIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMI
TIA Portal w 7 min. Podłączenie PLC i PLCsim do wirtualnego HMI
 
Pierwszy program w c# cezary walencik
Pierwszy program w c# cezary walencikPierwszy program w c# cezary walencik
Pierwszy program w c# cezary walencik
 
Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8Współdzielenie kodu aplikacji Windows Phone i Windows 8
Współdzielenie kodu aplikacji Windows Phone i Windows 8
 
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
infoShare 2013: Rafał Czupryński - Aplikacje na Windows Phone 8 - jak to ugryźć?
 
Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012Programowanie na wiele platform mobilnych - 2012
Programowanie na wiele platform mobilnych - 2012
 
Program do pisania? Największa lista w sieci 2013 !
Program do pisania? Największa lista w sieci 2013 !Program do pisania? Największa lista w sieci 2013 !
Program do pisania? Największa lista w sieci 2013 !
 
Jak zmienić język w Windows 7?
Jak zmienić język w Windows 7?Jak zmienić język w Windows 7?
Jak zmienić język w Windows 7?
 
Asmebler
AsmeblerAsmebler
Asmebler
 
Visual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysqlVisual basic-2005-express-i-mysql
Visual basic-2005-express-i-mysql
 
Delphi 31-przydatnych-programow
Delphi 31-przydatnych-programowDelphi 31-przydatnych-programow
Delphi 31-przydatnych-programow
 
Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
 
PHP i microsoft
PHP i microsoftPHP i microsoft
PHP i microsoft
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
 
Hyperion - wystarczy jeden shake
Hyperion - wystarczy jeden shakeHyperion - wystarczy jeden shake
Hyperion - wystarczy jeden shake
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
 
Systemy operacyjne
Systemy operacyjneSystemy operacyjne
Systemy operacyjne
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
 
Rodzaje i zastosowanie oprogramowania użytkowego
Rodzaje i zastosowanie oprogramowania użytkowegoRodzaje i zastosowanie oprogramowania użytkowego
Rodzaje i zastosowanie oprogramowania użytkowego
 

Application in Xamarin.Forms

  • 1. Instalacja, przegląd, przykład gry i przyszłość framework’u Projektowanie aplikacji w Xamarin.Forms
  • 2. Czym jest Xamarin? Xamarin jest frameworkiem, która rozszerza C# .NET o możliwości tworzenia aplikacji mobilnych. Można go wykorzystać na dwa sposoby: ● Xamarin (Native) - bardzo podobne do programowania GUI w Java’ie. Pozwala programować aplikacje tylko na jedną platformę ● Xamarin.Forms - programowanie frontend’u podobne jak w aplikacjach WPF, czyli wykorzystując język XAML. Pozwala na programowanie aplikacji między platformowych na Android, iOS czy Windows Logo Xamarin
  • 3. Instalacja Aby programować w Xamarin.Forms potrzebujemy odpowiedniego IDE. Najwygodniejszym do tego jest Visual Studio 2019, jednakże zadziała również wersja 2017, jak i wersja preview 2022. Do każdej z powyższych wersji należy jednak doinstalować paczkę opracowywania aplikacji mobilnych z sekcji Komputery i urządzenia przenośne. Potrzebna paczka zaznaczona na czerwono
  • 4. Instalacja Dodatkowo potrzebny jest .NET Framework 4.5 (powinien być zainstalowany domyślnie wraz z instalacją Visual Studio). Xamarin.Forms wymaga również posiadania zainstalowanego Java Development Kit (JDK).
  • 5. Budowanie, wdrażanie i debugowanie Każdy projekt Xamarin.Forms może być debugowany na trzech platformach: ● Android ● Windows ● iOS Debugowanie aplikacji na Nasz system operacyjny nie jest problemem (windows na windows, iOS na iOS), gdy jednak chcemy przenieść naszą aplikację na telefon z Androidem należy posiadać telefon z dostępem do opcji programistycznych, czy też emulować ten system bezpośrednio na naszym komputerze.
  • 6. Emulowanie systemu Android Do emulowania urządzenia Android należy pobrać w Visual Studio zestawy SDK platformy na jakiej chcemy pracować oraz utworzyć emulacje telefonu. Opcje te są dostępne są na górnym pasku IDE. Ikona po lewej pozwala na zarządzanie pobranymi emulatorami i stworzenie nowych, ikona po prawej pozwala na pobranie zestawów SDK.
  • 7. Zestawy SDK Z zakładki Platformy, należy wybrać minimalnie jedną wersję systemu API. Z zakładki Narzędzia, należy wybrać wszystkie zaznaczone powyżej przedmioty (niektóre już mogą być).
  • 8. Tworzenie nowego emulatora Okno zarządzania emulatorami urządzeń Android. Domyślnie będzie puste i trzeba będzie utworzyć nowy klikając guzik + Nowy
  • 9. Tworzenie nowego emulatora Po kliknięciu guzika + Nowy, otworzy się okno z wieloma opcjami, które można zmieniać jak tylko się chce, ale na początek powinny wystarczyć domyślne ustawienia.
  • 10. Przyspieszenie sprzętowe emulatora!!! Emulacja Androida “na sucho” jest bardzo pochłaniająca zasoby i zwalniająca procesy naszej maszyny, ponieważ nasz komputer nie ma dokładnych instrukcji jak to robić. Po to powstało przyspieszenie sprzętowe wydajności emulatora przez producentów procesorów czy przez samych programistów systemów operacyjnych. Jest to jednak zależne od naszego systemu operacyjnego i producenta procesora w naszej maszynie, więc aby zainstalować poprawne sterowniki trzeba skierować się na tę stronę. W moim przypadku (Windows 10 z procesorem Intela) należało zainstalować HAXM dostępny na stronie Intela.
  • 11. Praca na fizycznym urządzeniu Android Aby debugować i wdrażać aplikację na własne urządzenie z systemem Android, należy mieć dostęp do opcji programistycznych i w zależności od nazewnictwa mieć zaznaczone opcje: ● Debugowanie USB ● Instaluj przez USB Gdy podłączymy telefon do komputera przez port USB Visual Studio powinien go wykryć i dać możliwość na wdrażanie naszej aplikacji na niego.
  • 13. Projekty Każde rozwiązanie projektu w Xamarin.Forms składa się przynajmniej z dwóch projektów. Projekt #1 jest zawsze klasą biblioteczną, z której korzysta każdy inny projekt. Są tam strony aplikacji, klasy i ustawienia. Projekty #2-#4 to projekty dla danych systemów operacyjnych. Różnią się plikami, które odpowiadają za ustawienia końcowe projektu (minimalne wymaga, wykorzystanie funkcji itp.) Rozwiązanie Projekt#1 #3 #2 #4
  • 14. Projekty na różne systemy operacyjne muszą istnieć, gdyż mają oddzielne opcje, np. opcje formatu pliku: ● Android: apk, aab ● Windows: exe Systemy różnią się również standardami uprawnień. Aby utworzyć plik używając metody File.Create(...); potrzebujemy uprawnienia: ● Android: WRITE_EXTERNAL_STORAGE ● Windows: Magazyn wymienny Wynikają z tego, iż różne sklepy (Google Play, Sklep Windows) inaczej odczytują z aplikacji wymagania, ponieważ użytkownicy muszą o nich wiedzieć przed instalacją oprogramowania. Projekty
  • 15. Uruchomienie Pierwszy kod odpowiadający na inicjalizację naszej aplikacji następuje w pliku App.xaml.cs w klasie bibliotecznej. Tuż po tym następuje zmiana ekranu naszej aplikacji na klasę MainPage.
  • 16. Uruchomienie - podgląd Gdy zajrzymy do pliku MainPage.xaml - który jest domyślną stroną główną naszej aplikacji - osoby, które miały styczność z framework’iem WPF zauważą, że nie ma tutaj interaktywnego okna z podglądem naszego programu. Aby mieć interaktywny wgląd do naszego programu wprowadzono XAML Hot Reload, który - gdy aplikacja jest uruchomiona - przeładuje każdą zmianę na ekran aplikacji, jeśli nie znajdzie w niej błędów.
  • 17. Domyślna strona główna, na której nie ma podglądu
  • 21. Język główny Pisanie tekstu w ojczystym języku jest najwygodniejszą formą pisania tekstu do aplikacji. Jednak, aby powiększyć ilość potencjalnych użytkowników warto pisać aplikację domyślnie w języku angielskim. Angielski jest jednym z najpopularniejszych języków, dlatego pisanie w nim naszej aplikacji rozszerzy ilość regionów, na jakie może być dostępna. Najpopularniejsze języki świata. Źródło.
  • 22. Języki Aby nasza aplikacja była wielojęzyczna, czyli obsługiwała więcej niż tylko jeden język, należy dodać do niej Plik zasobów, czyli plik o rozszerzeniu .resx. Dawniej, aby aplikacja obsługiwała ten format należało dodawać specjalne paczki do naszego projektu, teraz jednak wszystko dzieje się automatycznie. Pierwszy plik .resx będzie domyślnym językiem i może mieć dowolną nazwę np.: lang.resx i będzie stosowany do każdego regionu, dla którego nie ma pliku zasobów. Jeżeli domyślnym językiem naszej aplikacji będzie angielski, to by dodać obsługę polskiego należy stworzyć plik o tej samej nazwie z dodatkiem polskiego dwu znakowego kodu ISO 3166: ● lang.pl.resx ● lang.en.resx - dla angielskiego ● lang.de.resx - dla niemieckiego
  • 23. Domyślna paczka językowa (angielski) Paczka językowa dostępna tylko w regionie pl (polski) Eksplorator rozwiązań z dodanymi obydwoma plikami zasobów w folderze Lang
  • 24. Aplikowanie języków Pliki zasobów resx można używać w dwóch miejscach: na stronie XAML jak i code behind strony XAML.CS 1. Aby użyć pliku zasobów językowych w pliku strony XAML, należy dodać odniesienie do niego jako nowy xml namespace (xmlns) o dowolnej nazwie np.: xmlns:lang=”clr-namespace:nazwa_naszej_aplikacji . folder_w_którym_jest_plik_resx” 2. Z code behind strony nie trzeba tworzyć referencji do katalogu, w którym jest plik. Można od razu użyć wartości pliku zasobów jak właściwości klasy folder_w_którym_jest_plik_resx . nazwa_pliku . wartość
  • 25. Strona główna aplikacji. Na czerwono zaznaczona jest referencja do folderu. Na pomarańczowo zaznaczone jest wykorzystane pole z pliku
  • 26. Code behind głównej strony. Na czerwono zaznaczone jest odwołanie do właściwości pliku - jak do właściwości klasy - w metodzie DisplayAlert().
  • 27. Po lewo aplikacja Windows w lokalizacji polskiej, po prawej aplikacja Android w lokalizacji angielskiej.
  • 29. Gra w kości Kurnik/Kniffel/Gra w kości Jedno i wieloosobowa gra, z automatycznym zapisem postępu gry jak i zapisem najlepszego wyniku. Dostępna w języku polskim i angielskim. Dwa tryby gry: ● fizyczna kostka ● wirtualna kostka Dostępna na systemy Android na sklepie Google Play
  • 30.
  • 31.
  • 32.
  • 34. Przestarzałe? Wraz z premierą Visual Studio 2022 ma nadejść nowy .NET 6, w którego skład będzie wchodziło .NET MAUI (Multi-platform App UI). MAUI ma być rozszerzeniem funkcji Xamarin.Forms zamkniętym tylko w jednym projekcie z ustawieniami dla wszystkich platform, a wygląd elementów ma być bardziej uniezależniony od systemu. Będzie miało lepszy dostęp i zakres gestów, dostęp do czujników (żyroskop, kompas). Jednak tworzenie aplikacji w MAUI ma być bardzo podobnym do Xamarin.Forms. Dalej strony będą plikiem XAML z code behind XAML.CS i dalej będzie ta sama problematyka języków.