poniedziałek, 18 kwietnia 2016

[DSP2016] Android prosto z poligonu odc.9 (językowa lokalizacja, ikona aplikacji)

Dziś odcinek wagi lżejszej. Zajmiemy się drobnymi, ale niezbędnymi sprawami.

Instalując app-kę na urządzeniu fajnie byłoby, aby jej nazwa oraz zawarte w niej napisy były zgodne z aktualnie ustawionym językiem w systemie. Na stronie  http://developer.android.com/training/basics/supporting-devices/languages.html znajdziemy wyczerpujące informacje  na ten temat. W źródłach wprowadziłem:

  • plik res/values-pl/strings.xml - polskie tłumaczenia domyślnych tekstowych zasobów w języku angielskim (res/values/strings.xml)
  • w kilku plikach *.java zmiany statycznych stringów na wartości tekstowych zasobów

W ramach tego drugiego punktu posłużyłem się dwiema wersjami kodu ładującego zasoby. Tam, gdzie było to możliwe podałem bezpośredni identyfikator (np. R.string.not_all_permissions_msg), tam gdzie potrzebny był koniecznie łańcuch znaków skorzystałem z postaci:

getResources().getString(R.string.search_songs)

W przypadku zasobów z parametrem definujemy je zgodnie z dokumentacją na stronie http://developer.android.com/guide/topics/resources/string-resource.html. Przykładowo u mnie wystąpiła fraza:

Uprawnienie %1$s nie zostało nadane.

W miejsce %1$s może zostać podstawiony dowolny string. W kodzie napis z parametrem możemy złożyć w następujący sposób:

String msg = getResources().getString(R.string.permission_denied_msg, "RECORD_AUDIO");

W Androidzie może podobać się sprawna podmiana napisów (i nazwy aplikacji) zaraz po zmianie języka w systemie, bez jego restartu.

Inną, nawet bardziej niezbędną sprawą jest podmiana domyślnej ikony aplikacji na swoją. Z obowiązującymi wytycznymi możemy zapoznać się na stronie https://www.google.com/design/spec/style/icons.html. Trafił mi się też post http://android-developers.blogspot.com/2013/07/making-beautiful-android-app-icons.html. Aby jednak dość szybko to zrobić skorzystałem ze stronki Android Asset Studio - Icon Generator - Launcher icons, która pozwala wygenerować zestaw ikon zgodny z obowiązującymi standardami.

To tyle na dziś.

P.S Załączam krótkie nagranie z działania app-ki, którego ostatnio zapomniałem udostępnić

sobota, 16 kwietnia 2016

BUILD 2016 - odc.3 (UAP, XAML, Xamarin)

Mały powrót do BUILD-a, 4 kolejne sesje związane z Windows i .NET.

Jeśli chodzi o uniwersalną platformę widać stopniowy jej rozwój i modyfikację. Nie ma tak spektakularnych zmian jak kiedyś, ale znajdziemy trochę pożytecznych nowości, a niektóre z nich sprawią nam wręcz radość jako twórcom. Ciekawie zapowiada się synchronizacja między urządzeniami niezależnie od platformy i wsparcie dla budowania rozszerzeń w oparciu o kontrakty (Edge tego używa).

Miłe drobne zmiany w XAML, jak wsparcie dla animowanych GIF-ów, łatwiejsza podmiana kolorystyki w kontrolkach danego typu, udoskonalenie CommandBar (m.in automatyczny overflow czy podawanie miejsca na labelki przycisków), zmiany z myślą o XBOX (m.in focusy, dźwięki), w pełni deklaratywne kontektowe menu, skróty klawiszowe, data binding wywołań metod i z rzutowaniem (nie potrzebujemy już nawet konwerter-ów), kontrolka TreeView (github, jak w Edge), nawigacja klawiaturą po Comboboxie, mocne wsparcie dla Ink, udoskonalenia w MediaPlayer, ItemsStackPanel. Mamy też efekty wizualne np. blur (co prawda trzeba napisać sporo dość kodu, nie to co kiedyś w Silverlight) czy niejawne animacje (demo z prostym kodem jak fajnie animować każdy element w gridzie jak zmieniamy rozmiar okna).

Prezentacja o Xamarin, hm… cóż jakoś mało odkrywcza, spodziewałem się czegoś znacznie więcej.

Cykl życia aplikacji - widać, że znów luzowane są reguły, że wolno coraz więcej. Podobać się może wykonywanie kodu w tle bez potrzeby tworzenia oddzielnego projektu z taskiem, wykonywanie w tle jak odtwarzanie audio bez linijki specyficznego kodu, tylko z deklaracją w manifeście (w Android jednak tak łatwo nie ma), możliwość przedłużenia wykonywania aplikacji lub jej usypiania o dowolną ilość czasu (jeśli stan energii lub user zezwoli na taką konfigurację). Niezabijanie od razu app-ki przy przekroczeniu zasobów to także objaw większego liberalizmu dla twórców.

 

Universal App Model Overview: What’s New in the UWP App Model

image

image

image

image

image

image

image

image

image

image

 

What's New in Windows UI/UX for Universal Windows Platform (UWP) Apps

image

image

image

image

image

CommandBar:  pozycjonowanie labelek do przycisków, auto overflow!

image

image

image

image

image

image

image

image

image

image

image

image

image

image

Wywoływanie metod w data bindingu

image

image

image

nie trzeba już konwerterów

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

 

Cross-Platform Mobile with Xamarin

image

image

image

image

 

Universal Windows Application Lifecycle: From Activation and Suspension to Background Execution, Multitasking and Extended Execution

image

image

image

image

image

image

image

image

image