ShopHelper – Start :)

1,2,3 Start… Rozpoczynam udział w konkursie Daj Się Poznać 2017 🙂

Na początek nie mogło zabraknąć oczywiście wpisu na temat założenia projektu oraz tego co w ogóle będzie robił ShopHelper!

ShopHelper będzie aplikacją mobilną, której główną funkcjonalnością będzie lista zakupów. Lista zakupów powinna być łatwo edytowalna tak aby z ekranu głównego można było dodać nowe pozycje i odhaczyć już zakupione. Dodatkową opcją będzie udostępnianie listy pomiędzy różnych użytkowników, tak aby każdy mógł edytować listę. Kolejna opcja to historia zakupów. W maksymalnym streszczeniu narazie chyba tyle, choć jeśli starczy czasu i inwencji może coś się jeszcze fajnego pojawi 🙂

Jako technologię wybrałem .NET i Xamarin. Planuję aby aplikacja była uruchamia na wielu platformach więc zdecydowałem się użyć framework-a Xamarin.Forms, który pozwoli na równoczesne pisanie kodu pod Androida, iOS-a oraz UWP z użyciem xaml-a. Do pracy z kodem wykorzystam Visual Studio 2015 Update 3 w wersji Community. Zaczynamy!

 

Utworzyłem solucję w VS, nazwałem ją ShopHelper, natomiast sam projekt ShopHelper.Client. Na tą chwilę nie planuję innych komponentów niż aplikacja kliencka ale nigdy nic nie wiadomo, więc w przyszłości nie będę musiał robić refactoringu w nazwach projektów.

Do udostępniania kodu pomiędzy platformy użyję SharedProject, jest to o tyle fajne rozwiązanie, że kod źródłowy jest automatycznie kompilowany razem z każdym osobnym projektem każdej z platform.

Oznacza to tyle, że o tym jak ma zostać skompilowany decyduje projekt, do którego dodana została referencja do SharedProject. Jak widać poniżej po utworzeniu solucji mamy jeden projekt typu SharedProject oraz 3 natywne odpowiadające konkretnym platformą. W skrócie kod „wspólny” umieszczony w ShopHelper.Client korzysta z framework-a Xamarin.Forms, następnie każdy z projektów z aplikacją natywną pod każdą z platform  posiada referencję do SharedProject oraz wszystkich potrzebnych bibliotek.

Tak wygląda solucja zaraz po utworzeniu:

Cała „filozofia” współdzielenia kodu pomiędzy różne platformy polega na tym, że każda z platform wykorzystuje wspólny komponent App, ładując go w odpowiedni dla konkretnej platformy sposób. Poniżaj klasa App oraz załadowanie jej przez natywną aplikację Android.

Po skompilowaniu i uruchomieniu aplikacja na razie nic nie robi i wygląda tak na tablecie z Androidem:

Podsumowując dziś udało mi się stworzyć „pusty” projekt, który pozwoli na pisanie kodu pod różne platformy, kod oczywiście udostępniam na GitHubie, w następnych dniach utworzę pierwsze prawdziwe komponenty i podzielę się nimi w następnych wpisach. Ufff jak na pierwszy wpis poszło mam nadzieję nieźle, i że nic istotnego nie pominąłem. Zachęcam do zostawienia komentarzy oraz lektury następnych wpisów już wkrótce!

Dodaj komentarz