Wrażenia .NETowca w trakcie poznawania Android Studio

Siemanko. 

Niedziela, niedzielą, ale ostatni wpis był we wtorek, a zasady #dajsiepoznac kompetyszyn wymagają min. dwóch w tygodniu także nie ma, że boli, że się nie chce tylko od rana jest ostre kodowanko abym miał o czym pisać 😉 W tym wpisie podzielę się moimi wrażeniami na temat Android Studio i developmentu w tymże środowisku.

Jak już pisałem w w tym poście Java, Android i w ogóle development mobilny to dla mnie nowość. Pierwsza inicjacja z wyżej wymienionymi nastąpiła ok miesiąc temu. Postanowiłem zacząć po bożemu czyli odpaliłem pluralsight, pogrzebałem i znalazłem serię czterech filmów składających się na kurs „Android for .NET developers”. Pierwsze ruchy w Android Studio i pierwsze linijki kodu w Javie pisałem właśnie w oparciu o pierwszy film z serii. Kurs ogólnie spoko. Prowadzący wszystko rozkłada na czynniki pierwsze i dokładnie opisuje co trochę mnie zaczęło nudzić i w ok. połowie drugiego filmu postanowiłem już sam eksplorować ten temat w myśl zasady, że wiedza na temat jakiejś technologii jest wprost proporcjonalna do liczby naklepanych linii kodu, a nie liczby godzin obejrzanych kursów 😉

Moje pierwsze wrażenie na temat androida? – win forms na telefon :). A dlaczego? Proszę:

screen1

Jeśli ktoś klepał trochę w formsach to na pewno podziela moje pierwsze wrażenie. Po lewej przybornik z kontrolkami (w Androidzie – Views), na środku wizualizer, a po prawej Solution Explorer i Properties do kontrolek. I tak samo jak w formsach – przeciąganie, ustawianie właściwości itp. Jeśli chodzi o kod to w formsach mamy już referencje do wszystkich kontrolek w designerze i możemy się do nich odwoływać przez „this”, natomiast w androidzie  musimy każdą kontrolkę wyciągać poprzez findViewById()

screen2

Zaskoczyło mnie natomiast „wsparcie” zarówno w samym Android Studio jak i w dokumentacji Androida. W Androidzie widok jest nazwany Acitivity (Form w .NET). Chcąc dodać nowe Activity możemy wybrać z listy wstępnie ubrane i oprogramowane widoki, nawet z jakimiś prostymi logikami co baaardzo ułatwia wejście w Androida takim świeżakom jak ja.

screen3.jpg

Dokumentacja na stronie Androida jest bardzo obszerna, a sekcja nazwana „Training” zawiera wiele prostych, ale gotowych rozwiązań praktycznie dla każdej funkcjonalności związanej z aplikacją mobilną.

Struktura projektu na dzień pisania postu

screen4

Po lewej stronie widać otwarty folder (tak na prawdę to nie folder tylko paczka – coś jakby dllka w .NET) „activities” z plikami, z kodem Java. Są to widoki. Każdemu z tych plików są przypisane pliki .xml z folderów res->layout. Pliki z tego folderu to jest warstwa prezentacyjna widoku. W swoim projekcie podzieliłem pliki na foldery (paczki) jak widać wyżej.

Ogólnie podoba mi się Android i zaczyna mi już sprawiać frajdę (kilkanaście godzin już przesiedziałem z otwartym Android Studio) jednak pomieszanie warstwy logiki z warstwą prezentacji jest tu straszne. No i żeby coś sprawdzić to tak jak w formsach trzeba uruchamiać aplikację i się doklikiwać tam gdzie potrzebujemy. Na szczęście mam telefon z Androidem do celów czysto deweloperskich także nie muszę korzystać z emulatora wirtualnych urządzeń, bo ten strasznie długo się uruchamia, a na podłączonym kabelkiem telefonie aplikacja wstaje po kilku sekundach od uruchomienia jej w Android Studio.

To by było na dziś tyle. Trzeba wracać do życia rodzinnego. Posty będę starał się pisać w środy i niedziele wieczorami. W następnym poście opiszę nieco Asp.Net Core 1.0 i strukturę projektu w Visual Studio. Kolejne posty będą już stricte o funkcjonalnościach aplikacji, które napisałem do tej pory. Jeśli jesteś ciekawy już teraz to wszystko jest w repo.

Pjona!

Reklamy

Start #dajsiepoznac 2016 – opis projektu „Mobile Second Hand”.

Siemanko.

Dziś wystartował konkurs #dajsiepoznac także pora na kilka słów o tym co zamierzam robić przez najbliższy czas. Mam nadzieję, że uda mi się wygospodarować wolnego czasu na tyle aby mieć o czym pisać dwa razy w tygodniu do połowy maja.

Projekt ma na celu stworzenie aplikacji mobilnej, która ma służyć do kojarzenia ze sobą użytkowników w zadanym przez nich obszarze w celu pozbycia się/nabycia w maksymalnie uproszczony sposób starych/niepotrzebnych/nietrafionych z kolorem, rozmiarem itp. ubrań czyt. odzieży. Aplikacja będzie skierowana głównie do kobiet, które uwielbiają kupować lub zdobywać nowe (w ich garderobie) ciuchy jednocześnie nie mając co zrobić z rzeczami, które się Im już znudziły. Oczywiście jest mnóstwo platform do sprzedania takich niepotrzebnych rzeczy jednak wiąże się to najczęściej z :

(dla chcącej się pozbyć)

  • rejestracją
  • wypełnianiem dość sporych formularzy z wymaganymi polami
  • robieniem zdjęć, które najczęściej następnie należy zgrać na kompa
  • używane rzeczy nie cieszą się zbyt dużym powodzeniem (najczęściej kupują je kobiety mające fioła na punkcie second handów)
  • przy ew. sprzedaży trzeba zapakować przesyłkę
  • udać się na pocztę lub umówić z kurierem (trzeba znaleźć czas najczęściej w godzinach pracy)
  • czekać na zwrot pobrania
  • ogólnie sporo roboty i zachodu

(dla chcącej coś kupić)

  • rejestracją
  • śledzeniem aukcji/ogłoszeń
  • wysyłaniem zapytań do sprzedającego, na których odpowiedź trzeba czekać
  • brak pewności czy to co na zdjęciu wydaje się być ok w realu też jest ok
  • brak możliwości przymierzenia
  • oczekiwaniem na przesyłkę

 

A gdyby tak:

(dla chcącej się pozbyć)

wyciągnąć telefon, zrobić zdjęcie np. sukienki, której chcemy się pozbyć, wpisać np. „Sukienka czerwona rozm. 38 raz użyta. Sprzedam lub zamienię na inną” i kliknąć OK. Po pewnym czasie dostajemy powiadomienie, że użytkowniczka XYZ jest zainteresowana i chce nawiązać kontakt. Klikamy ok i otwiera nam się mini czat. Użytkowniczka oznajmia, że znajduje się od sprzedającej 2km więc za 15 min. mogą się umówić na mieście. Tak też się dzieje i dokonują transakcji. Obie użytkowniczki są zadowolone 🙂

(dla chcącej coś kupić)

idziemy ulicą i dostajemy powiadomienie, że w odległości ok 2 km jest do kupienia jakiś ciuch. Otwieramy ogłoszenie, oglądamy zdjęcia i klikamy nawiąż kontakt. Otwiera nam się okno mini czatu prosimy sprzedającego o nr telefonu i uzgadniamy miejsce gdzie możemy obejrzeć ciuch i ew. dokonać transakcji. Obie użytkowniczki są zadowolone 🙂

 

Teraz trochę o technologiach:

Java_logo

android

 

Jak widać po logach apka jest pisana na androida w Android Studio. Jestem całkowicie zielony jeśli chodzi o Javę i w ogóle development mobilny no ale to jest główny powód tego projektu – chcę się czegoś nowego nauczyć 🙂 Apka będzie korzystać, z internetu, lokalizacji i multimediów.

aspnetcore

Backendem jest nowe ASP.NET Core czyli jeszcze do niedawna nowe ASP.NET5. REST API, dostęp do danych i cała logika. Tu już czuję się znacznie mocniej ponieważ jestem .NETowcem, ale oczywiście też mam zamiar wielu nowych rzeczy w nowym frameworku się nauczyć.

maxresdefault

Jak starczy czasu to chciałbym też nieco liznąć tematu Machine Learning. W tym tez jestem zielony ale mam nadzieję, że się to zmieni. A czego maszyna miałaby się w tym projekcie uczyć? Jakie ciuchy, jakie kolory i rozmiary itp. najczęściej i najchętniej dany użytkownik przegląda, i na tej podstawie wyświetlać mu spersonalizowane reklamy.

 

To by było na tyle jeśli chodzi o wstęp. W następnych postach będę pisał co i jak zrobiłem oraz jaki będzie dalszy plan zadań.

Jak dotąd zrobiłem kilka bardzo prostych widoków w androidzie na potrzeby logowania i autentykacji, wysyłanie/odbieranie requestow oraz proces autentykacji w ASP.NET obsługujący logowanie przez facebook’a.

Pjona!