Jak już pisałem we wcześniejszym wpisie, Maciek Aniserowicz organizuje konkurs, dzięki któremu można będzie po pierwsze wygrać bardzo ciekawe nagrody a po drugie trochę bardziej „dać się poznać”. Postanowiłem wziąć udział w konkursie z kilku powodów:
- Rewelacyjny impuls aby powrócić bardziej aktywnie do bloga.
- W końcu ruszę projekt bardzo powoli i leniwie rósł gdzieś w zakamarkach świadomości.
- Młodzi programiści, którzy nie pracowali zawodowo często nie wiedzą jak wygląda tworzenie aplikacji więc spróbuję opisać ten projekt krok po kroku wraz z kilkoma pseudo filozoficznymi przemyśleniami. Dzięki temu będziecie mogli poznać kilka narzędzi i metod oraz będziecie wiedzieli na co zwracać uwagę w swoich projektach (jak ten aspekt wyjdzie, jestem bardzo ciekaw). Jeśli to co będę pisał pomoże chociaż jednej osobie, wówczas będę uszczęśliwiony.
- No i w końcu, zgarnięcie jakiejś ciekawej nagrody 😉
Okej, czas zacząć. Pierwsza rzecz to pomysł. Bardzo często w pracy zawodowej mamy narzucone narzędzia, czy to przez kulturę konkretnej firmy/organizacji, dostępne licencje czy też inne aspekty. W sytuacji idealnej, kiedy mamy możliwość wyboru narzędzi proponuję w fazie pracy nad pomysłem zupełnie zapomnieć o technologii, zapomnieć o narzędziach i skupić się na samym pomyśle. Proponuję zadać sobie następujące pytania:
- Jaki jest cel projektu? Co ma wykonywać aplikacja?
- Dlaczego taka aplikacja jest potrzebna? A może nie jest potrzebna?
- Czy istnieją takie aplikacje na rynku? Jeśli tak to w czym moja będzie lepsza od innych?
- Jak mam zamiar zarabiać na mojej aplikacji?
Oczywiście można by zadać sobie więcej pytań ale te wydają się na tyle podstawowe a jednocześnie na tyle szerokie, że powinny zainicjować odpowiedni proces myślowy i sprowokować do głębszych przemyśleń.
Jak to wygląda w przypadku mojej aplikacji konkursowej ?
-
Jaki jest cel projektu? Co ma wykonywać aplikacja?
Chcę stworzyć aplikację „Framework” do hostowania gadgetów. Chcę aby aplikacja mogła wczytywać dodatkowe gadżety poza tymi, które dostępne będą domyślnie. Chcę aby nowe gadżety mogły być dodawane w trakcie pracy i prawdopodobnie najważniejsza rzecz (dla mnie osobiście), chcę poznać bardziej Windows Presentation Foundation (WPF). Ostatni powód jest jednym z najważniejszych z prostego powodu, można przeczytać 200 książek, całego MSDN-a i 10 000 blogów na temat ……………. (tu wstaw dowolne literki – u mnie tj WPF) a i tak, ciągle będziemy mieli wrażenie, że wiemy mało. Nic nie powoduje szybszego przyrostu wiedzy niż wykorzystanie jej w konkretnym projekcie. Oczywiście podstawy teoretyczne są potrzebne, potrzebujemy sięgać do książek i dokumentacji, ale dopóki nie wykorzystamy tej wiedzy w rzeczywistym projekcie, ta wiedza będzie tylko i wyłącznie teoretyczna. Zresztą jeśli ten temat Cię interesuje to przeczytaj wpis Programowanie przez eksplorację Maćka.
-
Dlaczego taka aplikacja jest potrzebna? A może nie jest potrzebna?
Tutaj odpowiedź jest banalna – nie jest potrzebna. Są gotowe platformy takie jak Yahoo Gadgets (wcześniej Konfabulator) jest Rainmeter i w końcu wbudowany mechanizm gadżetów w Windows-a 7. Tak więc sama potrzeba rozwiązania problemu jest dawno zaspokojona, co więcej ilość dostępnych gadżetów na poszczególne platformy jest tak szeroka, że bez pomocy z zewnątrz, nie będę wstanie zapewnić nawet 1/10 tego co istniejące platformy oferują już dzisiaj. Rozwijana aplikacja jest na moje potrzeby – poznanie WPF-a a przy okazji będzie pozwalała na rozpoznanie wielu zewnętrznych API (ale o tym później)
-
Czy istnieją takie aplikacje na rynku? Jeśli tak to w czym moja będzie lepsza od innych?
Na to pytanie odpowiedziałem już wcześniej. Tak, istnieją takie aplikacje i tak, mają szersze możliwości. Jednak moim nadrzędnym celem jest poznanie WPF-a.
-
Jak mam zamiar zarabiać na mojej aplikacji?
Tutaj sprawa jest prosta. Aplikacja z uwagi na swoje przeznaczenie nie będzie sprzedawana a jeśli tak się zdarzy, że aplikacja znajdzie szersze zainteresowanie, wówczas przewiduję możliwość złożenia dobrowolnych datków. Nie widzę tutaj miejsca na inny model biznesowy – bo i po co.
Okej, sprawy ogólne załatwione, w tym momencie, chciałbym abyś się czytelniku zastanowił nad swoim projektem, który będziesz rozwijał. Zadaj sobie 4 podstawowe pytania (może niekoniecznie dokładnie takie same, jednak poświęć minimum 5-10 minut na przemyślenie powodów tworzenia aplikacji).
W następnym odcinku zajmiemy się kolejnym krokiem, czyli przygotowaniem środowiska.