• Nie Znaleziono Wyników

Programowanie wieloplatformowe z użyciem Embarcadero RAD Studio/Delphi

N/A
N/A
Protected

Academic year: 2022

Share "Programowanie wieloplatformowe z użyciem Embarcadero RAD Studio/Delphi"

Copied!
28
0
0

Pełen tekst

(1)

Programowanie wieloplatformowe z użyciem

Embarcadero RAD Studio/Delphi

Zdzisław Sroczyński Politechnika Śląska Instytut Matematyki

Wydział Matematyki Stosowanej materiały dydaktyczne do przedmiotu:

Aplikacje mobilne dla systemu iOS

(2)

Platforma Firemonkey/FMX

▶ Firemonkey – zalety:

ˆ jeden wspólny kod źródłowy – ujednolicony model obiektowy odwzorowany na API różnych syst.oper.

ˆ natywne kompilatory LLVM dla ARM, Intela

ˆ Windows, macOS, iOS, Android (32/64b), Linux (64b)

ˆ GUI – „pixel perfect”, grafika wektorowa 2D, 3D, animacje, efekty, style

ˆ kluczowe kontrolki mogą być natywne (combobox, date/time picker)

ˆ ujednolicona obsługa sensorów (GPS, akcelerometr, aparat cyfrowy)

ˆ szybkie prototypowanie aplikacji (rapid prototyping)

ˆ rozbudowane IDE: RAD Studio, różne języki

programowania do wyboru: Delphi/Object Pascal, C++

ˆ bezpłatna wersja IDE „Community” (limit przychodu)

(3)

▶ Firemonkey – wady:

ˆ koszty wersji komercyjnej (ale wciąż open-source!)

ˆ ogólnie GUI rysowane przez Firemonkey nie jest natywne (podobnie jak w Javie, Flutterze i aplikacjach

webowych), problemy z z-index

ˆ możliwości FMX stanowią pewien wybór (szeroki) możliwości poszczególnych, obsługiwanych platform mobilnych

ˆ im większa integracja z systemem operacyjnym, tym więcej kodu trzeba opracować warunkowo dla konkretnej platformy

ˆ zmiany wymagań po stronie producentów (Apple, Google) wymagają czasu na zaadaptowanie (podobnie jak w innych narzędziach firm trzecich)

(4)

Aplikacja FMX skompilowana dla Apple iOS, MS Windows i Android:

oczywiście możliwe jest zaprojektowanie dedykowanego

układu dla każdego systemu operacyjnego...

(5)

a także różnych rozmiarów ekranu:

(6)

Architektura Firemonkey/FMX

(7)

Kompilacja na Android w RAD Studio

źródło: felix-colibri.com

(8)

Kompilacja na iOS w RAD Studio

źródło: felix-colibri.com

(9)

paserver (Platform Assistant Server)

Aplikacja pomocnicza (nie tylko dla iOS, są też wersje

dla Linux i Windows!)

(10)

paserver (SDK)

(11)

paserver (provisioning i konfiguracja)

(12)

iOS – kontrolki natywne

(13)

FMX – Beaconfence

(14)

RAD Studio – Multi device preview

(15)

Podstawowe cechy Firemonkey

▶ możliwości graficzne:

ˆ ”efekty” graficzne i animacje

ˆ edycja w sposób wizualny

ˆ inicjowanie w zależności od zdarzeń w systemie

ˆ możliwe wywołania synchroniczne i asynchroniczne

▶ Przykład (zmiana położenia panelu):

T A n i m a t o r . A n i m a t e F l o a t ( Panel1 ,’ P o s i t i o n . X ’, −50 , 0 . 4 ,

T A n i m a t i o n T y p e . atIn , T I n t e r p o l a t i o n T y p e . i t E x p o n e n t i a l ) ;

(16)

Style wizualne w Firemonkey

▶ Style:

ˆ osadzone w zasobach aplikacji

ˆ ładowane z zewnętrznego pliku

ˆ definicja w postaci plików tekstowych

ˆ możliwe wywołania synchroniczne i asynchroniczne

▶ Przykład (zmiana stylu wyzwalana kliknięciem):

o b j e c t T I n n e r G l o w E f f e c t

S t y l e N a m e = ’ I n n e r G l o w E f f e c t 1 ’ T r i g g e r = ’ I s P r e s s e d=t r u e ’ E n a b l e d = F a l s e

. . .

(17)

Wersje językowe oprogramowania w Firemonkey

▶ Obiekt TLang:

ˆ kreator tłumaczenia

ˆ automatyczny dobór wersji językowej wg ustawień systemu operacyjnego

ˆ GetCurrentLangID ≠ NSLocale.preferredLanguages

▶ Korekta źródeł biblioteki:

f u n c t i o n T C o c o a T o u c h M e t r i c s S e r v i c e s . G e t C u r r e n t L a n g I D : s t r i n g; v a r

l n g s : N S A r r a y ; L a n g u a g e I S O : N S S t r i n g ; b e g i n

l n g s := T N S L o c a l e . O C C l a s s . p r e f e r r e d L a n g u a g e s ; L a n g u a g e I S O := T N S S t r i n g . W r a p ( l n g s . o b j e c t A t I n d e x ( 0 ) ) ; R e s u l t := U T F 8 T o S t r i n g ( L a n g u a g e I S O . U T F 8 S t r i n g ) ; i f L e n g t h( Result ) > 2 t h e n

D e l e t e( Result , 3 , MaxInt ) ; end;

(18)

Aplikacja Firemonkey dla iOS w j. polskim i angielskim:

(19)

AppTethering

▶ działa na Windows, MacOS, Android i iOS oraz pomiędzy aplikacjami na tych platformach

▶ współpraca aplikacji wykorzystujących RTL RAD Studio (w tej samej podsieci)

ˆ połączenia IP

ˆ połączenia Bluetooth (classic)

▶ wyszukiwanie podłączonych aplikacji

▶ uruchamianie zdalnego kodu

▶ wymiana danych

▶ prosty protokół, łatwa implementacja, wsparcie

gotowych komponentów

(20)

AppTethering – schemat

(21)

AppTethering – obsługa zdalnego zasobu

T e t h e r i n g A p p P r o f i l e 1 . R e s o u r c e s . F i n d B y N a m e (’ nazwa ’) . Value :=’ w a r t o s c ’; . . .

p r o c e d u r e T M a i n F o r m . T e t h e r i n g A p p P r o f i l e 1 R e s o u r c e s 0 R e s o u r c e R e c e i v e d ( c o n s t S e n d e r : T O b j e c t ; c o n s t A R e s o u r c e : T R e m o t e R e s o u r c e ) ; b e g i n

M e m o 1 . T e x t :=’ o t r z y m a n o : + A R e s o u r c e . Value . A s S t r i n g ; end;

. . .

f o r v a r i := 0 t o T e t h e r i n g M a n a g e r 1 . R e m o t e P r o f i l e s . C o u n t − 1 do

T e t h e r i n g A p p P r o f i l e 1 . S e n d S t r e a m ( T e t h e r i n g M a n a g e r 1 . R e m o t e P r o f i l e s [ i ] ,’ nazwa ’, ↩ P i c t u r e S t r e a m 1 ) ;

. . .

p r o c e d u r e T e t h e r i n g A p p P r o f i l e 1 R e s o u r c e R e c e i v e d (

c o n s t S e n d e r : T O b j e c t ; c o n s t A R e s o u r c e : T R e m o t e R e s o u r c e ) ; b e g i n

T T h r e a d . S y n c h r o n i z e (n i l,p r o c e d u r e v a r

L S i z e : I n t 6 4 ; b e g i n

t r y

L S i z e := A r e s o u r c e . V a l u e . A s S t r e a m . S i z e ; A r e s o u r c e . V a l u e . A s S t r e a m . P o s i t i o n := 0 ;

T A n i m a t o r . A n i m a t e F l o a t W a i t ( I m a g e F o t o , ’ O p a c i t y ’, 0 , 0 . 5 ) ; I m a g e F o t o . B i t m a p . L o a d F r o m S t r e a m ( A r e s o u r c e . V a l u e . A s S t r e a m ) ; T A n i m a t o r . A n i m a t e F l o a t W a i t ( I m a g e F o t o , ’ O p a c i t y ’, 1 , 0 . 5 ) ; I m a g e F o t o . R e p a i n t ;

e x c e p t end; end ) ; end;

(22)

AppThethering

(23)

Visual Live Binding

wizualne łączenie danych z kontrolkami:

(24)

FMX.MobilePreview

Styl podobny do iOS na platformie Windows:

(25)

Apple iOS – cykl życia aplikacji

▶ ograniczona wielozadaniowość:

ˆ wydajność i oszczędzanie energii

ˆ konieczność prezentacji wielu uruchomionych procesów

▶ cykl życia aplikacji iOS (v>3):

ˆ not running

ˆ inactive – stan przejściowy/tymczasowy

ˆ active

ˆ background – stan przejściowy/tymczasowy

ˆ suspended

▶ zarządzanie aplikacjami przez iOS:

ˆ ostrzeżenia o braku pamięci (poziomy zależne od urządzenia)

ˆ automatyczne usuwanie zamrożonych (suspended) aplikacji

(26)

Testowanie aplikacji dla iOS

▶ wykorzystanie symulatora ≠ fizycznego urządzenia

ˆ możliwie wiele wersji systemu operacyjnego i urządzeń o różnych rozdzielczościach i wymiarach ekranu

ˆ unicode, utf-8

ˆ połączenie z serwerami internetowymi

ˆ testowanie dotyku, gestów, ruchu i zmiany orientacji

ˆ symulacja na wydajnej maszynie klasy desktop jest znacznie szybsza niż na prawdziwym urządzeniu!

ˆ testowanie ostrzeżeń o braku pamięci

ˆ timery i opóźnienia – płynność animacji/zamrażanie przy przechodzeniu do stanu background

ˆ wywołania natywnych kontrolek systemu operacyjnego – dla cyklicznych animacji, np. ActivityIndicatorView zamiast TAniIndicator

ˆ testowanie w długich przedziałach czasu, rzędu dni

(27)

Podsumowanie

▶ cechy aplikacji mobilnych

ˆ użytkowe pośrednictwo graficzne wykorzystujące duże elementy kontrolne rozmieszczone na małym ekranie

ˆ praca ciągła

ˆ zapisywanie danych pomiędzy sesjami pracy użytkownika

ˆ wykorzystanie urządzeń peryferyjnych/sensorów

▶ testowanie aplikacji dla iOS

ˆ uwzględnienie cyklu życia aplikacji iOS

ˆ dokładnie określone wymagania odnośnie sposobu interakcji człowiek-komputer (iOS Human Interface Guidelines)

ˆ konieczność wykorzystania fizycznych urządzeń

ˆ konieczność weryfikacji wydajności dla złożonych lub cyklicznych animacji dla platformy Firemonkey

(28)

Dziękuję za uwagę

Cytaty

Powiązane dokumenty

Nowa forma komunikowania zastosowana przez markę Apple przyczyniła się do stworzenia konkretnych doświadczeń, które służą do po- zyskiwania potencjalnych klientów

A user study was carried out to determine whether the integration of direct input from physical objects with digital painting offers a unique creative experience. An

Należałoby uwzględnić także Microsoft, ale jest to firma „stara”, założona (kto jeszcze pamięta?) w 1975 roku, więc mimo iż spełnia kryteria firmy informatycznej czy

Zainstalowany system operacyjny iOS 11 Formaty plików archiwalnych obsługiwane ZIP.

1.2 Użytkownik przyjmuje do wiadomości, że po wygaśnięciu lub rozwiązaniu Umowy nie będzie mieć dostępu do usługi iCloud ani możliwości korzystania z niej w celu tworzenia lub

Jeśli na przykład Użytkownik chciałby odtworzyć piosenkę w ramach subskrypcji Apple Music, Apple zbiera dane dotyczące odtwarzanych przez Użytkownika piosenek w celu udostępnienia

Dane osobowe przekazywane przez osoby fizyczne w celu złożenia Zamówienia oraz zawarcia Umowy sprzedaży przetwarzane są przez Restauratora będącego stroną Umowy

8 poniżej - odstąpić od Umowy sprzedaży zawartej na odległość za pośrednictwem Serwisu bez podania przyczyny, składając stosowne oświadczenie przesłane na wskazany