Prosta aplikacja na iOS/iPhone.
Kod musi być w języku angielskim (nazwy zmiennych itp.)
1. Ekran główny będzie pusty. U góry w prawym rogu będzie przycisk "Profiles". Po kliknięciu tego przycisku, aplikacja przechodzi do następnego ekranu.
2. Ekran profiles pozwala na edycję lub dodanie nowego profilu, oraz jako główny element ekranu - listę z istniejącymi już profilami.
3. W ekranie dodawania/edytowania profilu użytkownik ma możliwość przypisania "akcji" do danego "pola" (pole jest tutaj rozumiane przez wartość liczby całkowitej pomiędzy <1,20>, można to sobie wyobrazić jako 20-klawiszową klawiaturę - jakaś akcja może być przypisana do danego przycisku).
4. Profile muszą być zapisane na urządzeniu tak, żeby można było się potem do nich odwoływać w innych miejscach w aplikacji (preferowana implementacja z użyciem frameworka CoreData).
5. Następujące akcje są wymagane do zaimplementowania (tj. ekrany do konfiguracji tych akcji):
a. Otwarcie adresu URL w przeglądarce - użytkownik ma możliwość podania adresu URL w oknie konfiguracji akcji dla danego profilu.
b. Otwarcie filmiku z YouTube - jako że system to obsługuje out-of-the-box poprzez specyficzne URL-e, nie będzie się to wiele różniło od punktu a. Różnica pomiędzy tym, a punktem a. jest taka, że użytkownik może podać tylko link do YouTube. Po podaniu adresu przez użytkownika, aplikacja pobierze tytuł filmiku z YT spod podanego przez użytkownika adresu. Aplikacja zapisze tytuł oraz adres URL w skonfigurowanej akcji dla profilu.
c. Wybranie utworu lub listy odtwarzania z koekcji iTunes na telefonie - tak, żeby później można było zacząć/zatrzymać odtwarzanie wybranego utworu/listy.
6. Akcje z punktu 5. muszą mieć odpowiednie klasy, które będą odpowiedzialne za wykonywanie ów akcji. Tj. np klasa ActionOpenURL będzie miała metodę, która otworzy wczytany z profilu adres URL w przeglądarce. Podobnie z pozostałymi akcjami. Wszystkie klasy powinny implementować interfejs "ActionInterface", który posiada *obowiązkowe* metody:
-(BOOL)canStop; - Zwraca YES/NO - mówi o tym, czy akcja może być zatrzymana. Np. akcja otwarcia adresu URL nie może być zatrzymana. Ale np. akcja odtwarzania utworu z kolekcji iTunes może.
-(BOOL)launch; - Uruchamia akcję
-(BOOL)stop; - Zatrzymuje akcję. Jeżeli canStop zwraca NO, to ta metoda posiada pustą implementację.
* Akcje są autonomiczne - nie zależą od profilów.
* Profile posiadają przypisane do nich akcje.
* Jedna akcja może być przypisana do wielu profili (tj. użytkownik może utworzyć 2 identyczne akcje w 2 różnych profilach).
* Każdy profil przy tworzeniu musi mieć przypisany unikalny identyfikator (UUID).
* Klasa reprezentująca profil musi mieć metodę, która zwróci słownik akcji (kluczem będzie tu "pole" opisane w pkt. 3 powyżej). Wartością będzie instancja klasy odpowiadającej zapisanej akcji (klasy implementujące interfejs opisany w pkt. 6 powyżej).
W razie pytań, proszę o kontakt. Aplikacja jest dosyć prosta, więc myślę, że tydzień powinien wystarczyć na jej wykonanie.
Dear, how are you?
I don't know my skill is full as you think.
But I have experience of 2+ years in app/game for iOS and Android.
If you have mind for me, can I discuss about your project?
I want to work with you and so I am waiting for your answer.
Jiu.
Witam,
aplikacja wygląda faktycznie na dość prostą. Proszę napisać mi, czy projekt interfejsu jest zrobiony, a jeśli tak to chciałbym go zobaczyć.
Pozdrawiam!