Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Daj Się Poznać 2016 — podsumowanie prac nad DePeszą

Konkurs Daj Się Poznać 2016, organizowany przez Macieja Aniserowicza, można już uznać za zakończony. Jego celem było promowanie ciekawych pomysłów, blogów i ludzi związanych z programowaniem. O szczegóły odsyłam do pierwszego wpisu z marca.

W ramach konkursu, w którym udział wzięło niemalże 300 osób (!!!), postanowiłem stworzyć aplikację dla użytkowników portalu dobreprogramy.pl. Już od jakiegoś czasu krążył po mojej głowie pomysł, aby przenieść system powiadomień ze strony www do aplikacji, która w tle sama sprawdzałaby nowe notyfikacje. Była ona adresowana do wąskiej grupy odbiorców, czyli do najbardziej aktywnych użytkowników portalu (oczywiście zwrot wąska grupa proszę nie brać dosłownie :P ). Od początku wiedziałem, co chce osiągnąć, dzięki czemu finalny stan na koniec akcji blogowej jest bardzo satysfakcjonujący.

Z racji tego, iż na co dzień związanych jestem z rozwiązaniami Microsoftowymi (.NET, MS SQL), postanowiłem projekt aplikacji stworzyć w C#, a dokładniej w oparciu o nową platformę Universal Windows Platform. Było to dla mnie czymś nowym i stanowiło swego rodzaju wyzwanie, możliwość rozwoju, ale także stworzenie czegoś, co będzie przydatne współużytkownikom portalu dobreprogramy.pl, z którym wszyscy tu jesteśmy związani.

Spis wszystkich wpisów z serii można znaleźć pod tym linkiem:

Seria wpisów: Aplikacja Windows 10 (Mobile) do powiadomień z dobreprogramy.pl

Podsumowanie prac

Całościowo projekt po tych trzech miesiącach wypada niezmiernie pozytywie. Tak naprawdę udało się osiągnąć znacznie więcej niż zakładałem. Cieszę się, że stworzona seria składa się w wpisów, gdzie każdy z nich jest niezmiernie obszerny i wartościowy. Przyznaję, że wymagało to sporo pracy i poświęceń, ale było warto :) Postanowiłem w kilku punktach zawrzeć najważniejsze informacje o projekcie.

  • Powstała w pełni funkcjonalna, aplikacja na Windows 10 i Windows 10 Mobile do obsługi powiadomień z portalu dobreprogramy.pl, która dostępna jest już w wersji finalnej w markecie: DePesza
  • Aplikacja nie tylko działa, ale równie całkiem nieźle wygląda i doczekała się własnego logo

  • Stworzona została dodatkowa funkcjonalność - pobieranie globalnych, statystyk z bloga (znaczne ułatwienie dla blogerów)
  • Powstała niezmiernie szczegółowa analiza systemu logowania i zarządzania powiadomieniami na portalu dobreprogramy.pl (swego rodzaju reverse engineering)
  • Powstał ciekawy zestaw wpisów odnośnie tworzenia aplikacji w Universal Windows Platform
  • Napisałem nawet testy jednostkowe (:P), która finalnie okazały się niezbędne nawet przy tak niewielkim projekcie
  • Sumarycznie (na dzień tworzenia tego wpisu): ponad 52 000 wyświetleń, 340 komentarzy
  • Najbardziej poczytny wpis: Wyskakujące powiadomienia w Windows 10 (10 000 wyświetleń)
  • Sporym sukcesem było również ogłoszenie konkursu na nazwę aplikacji, dzięki czemu program z bezdusznego okienka w komputerze/smartfonie stał się poczciwą DePeszą
  • Udostępniona kilka dni temu finalna wersja aplikacji ma ponad 200 unikalnych użytkowników i średnią ocenę w markecie 4.4
  • Zaangażowanie społeczności portalowej w rozwój aplikacji (duży odzew w konkursie na nazwę, zgłaszane błędy i nowe pomysły)
  • Pierwsza seria wpisów o analizie, wyróżniona w comiesięcznym konkursie blogowym na portalu dobreprogramy.pl
  • Pełen kod źródłowy dostępny na GitHub: https://github.com/djfoxer/dp.notification

Sumarycznie (na dzień tworzenia tego wpisu): ponad 52 000 wyświetleń, 340 komentarzy, najbardziej poczytny wpis: Wyskakujące powiadomienia w Windows 10 (10 000 wyświetleń)

Powstała szczegółowa analiza systemu logowania i zarządzania powiadomieniami na portalu dobreprogramy.pl, seria wisów o tematyce Universal Windows Platform, jak i czystym C#

Wsparcie czytelników - konkurs na nazwę, logo DePeszy, zgłaszanie błędów i nowych pomysłów

Powstała aplikacja, która od kilku dni jest już w wersji finalnej w markecie Windows: DePesza

Co dalej?

Aplikacja na Windows 10 i Windows 10 Mobile można uznać za produkt skończony. Zapewne będą jeszcze wrzucane pomniejsze poprawki związane z UI lub wyłapanymi błędami. W tym momencie głównie skupię się już jednak na stworzeniu aplikacji na pozostałe platformy przy użyciu Xamarina.

Słowo na koniec

Przyznaję, że ciekawy projekt, który pierwotnie miał być aplikacją do własnego użytku, stał się DePeszą - programem dla czytelników portalu dobreprogramy.pl.

Dziękuję tutaj wszystkim osobom, które zgłaszały błędy, nowe propozycje, brały udział w konkursie na nazwę i comiesięczny konkurs blogowy. Mam nadzieję, że DePesza, tym razem już multiplatformowa, ujrzy światło dzienne równie szybko, jak omawiana wersja na platformę UWP.

 

oprogramowanie programowanie urządzenia mobilne

Komentarze

0 nowych
tylko_prawda   11 #1 31.05.2016 18:30

"Przyznaję, że ciekawy projekt, który pierwotnie miał być aplikacją do własnego użytku, stał się DePeszą - programem dla czytelników portalu dobreprogramy.pl."
Pierwotnie to on miał być chyba nie tylko dla DP. Ale przecież jak coś jest do wszystkiego, to jest do niczego :D

"Dziękuję tutaj wszystkim osobom, które zgłaszały błędy, nowe propozycje, brały udział w konkursie na nazwę i comiesięczny konkurs blogowy. Mam nadzieję, że DePesza, tym razem już multiplatformowa, ujrzy światło dzienne równie szybko, jak omawiana wersja na platformę UWP."
Też mam taką nadzieję :) Jestem użytkownikiem DePeszy i chciałbym, żeby nie była tylko na Windows, i to w dodatku 10.

"Sporym sukcesem było również ogłoszenie konkursu na nazwę aplikacji, dzięki czemu program z bezdusznego okienka w komputerze/smartfonie stał się poczciwą DePeszą"
Nazwa na początku wydawała mi się idiotyczna, ale teraz już nie wydaje się być taka zła.


Poza tym - gratuluję stworzenia świetnej aplikacji, którą na pewno doceni wiele użytkowników DP :)

Autor edytował komentarz w dniu: 31.05.2016 20:55
Shaki81 MODERATOR BLOGA  38 #2 31.05.2016 20:31

Projekt świetny, wykonanie również. Dla mnie jeszcze tylko niech się pojawi na nieszczęsnego Andka i będę wniebowzięty. A wyróżnienie na naszym blogu należało się jak psu buda:)

djfoxer   18 #3 01.06.2016 07:07

@tylko_prawda: Dziękuję także, za Twoje zaangażowanie i poświęcony czas :)

@Shaki81: Dzięki, miło to słyszeć od Ciebie :)

cyryllo   17 #4 01.06.2016 09:18

Masz browara na HZ za statsy ;)
No i oczywiście głos ;)

Autor edytował komentarz w dniu: 01.06.2016 09:18
rmind   5 #5 01.06.2016 09:22

@djfoxer Funkcjonalnie spełnia swoje zadanie, co do projektu UI, widać, że nie zajmujesz się tym na co dzień :) Ale sam jestem w tym amatorem i wiem, że projektowanie aplikacji czy tym bardziej stron to straszny zjadacz czasu, a do poprawienia i ulepszenia zawsze się coś znajdzie. Zdarza się, że samo zaprojektowanie czegoś (strona funkcjonalna, UX, UI, strona wizualna itd.) zajmuje mi aż połowę czasu na zaimplementowanie rozwiązania, zresztą mam tendencję do poprawiania w nieskończoność ;)

BTW mam pytanie: jak oceniasz w praktyce pracę z Xamarin? Zastanawiałem się, czy się za to zabrać, ale póki co tworzę natywnie w Androidzie.

bachus   20 #6 01.06.2016 10:20

@djfoxer: kurcze, chętnie bym to już potestował (Android). Wyjawisz, czy to jest bardzo daleka przyszłość? Śledzę wszystkie wpisy o Twoim programie i na zrzutach ekranu widać, że poza oczywistą umiejętnością programowania masz smykałkę do budowania interfejsów użytkownika (nowocześnie, ale ze smakiem). Sam wszystko robisz?

djfoxer   18 #7 01.06.2016 10:29

@cyryllo: Robię screena i trzymam za słowo :) dzięki :)

@rmind: Na co dzień jestem full stack dev. SQL, Business Intelligence, C#, Angular. UX zostawiamy jednak osobom, które czują siew tym najlepiej , to ciężki temat i trzeba mieć nutkę estetyczną ;)

Xamarina dopiero udało mi się skonfigurować, jeszcze dłużej się w nim nie grzebałem.

xomo_pl   21 #8 01.06.2016 10:31

Świetny pomysł, czekam tylko aż wyjdzie na inne platformy :)

djfoxer   18 #9 01.06.2016 10:36

@bachus: Dzięki za miłe słowa :) Do Xamarina dopiero będę przysiadał. Mam już go skonfigurowanego, ale będzie to moje pierwsze spotkanie z tą platformą. Liczę jednak, że uda mi się stworzyć w miarę szybko coś, co może nie będzie ładne na początku, ale funkcjonalne. Tutaj chcę szybciej wydać wersję do testów, niż miało to miejsce w przypadku wersji na UWP.

Co do DePeszy to tak, wszystko robię od początku sam :) UX na ekranie statystyk jeszcze wymaga trochę poprawek, ale poza tym da się na to patrzeć i używać ;)

bachus   20 #10 01.06.2016 10:45

@djfoxer: fajnie; fajnie... gratuluję wiedzy i zawodu odpowiedniego na dzisiejszcze czasy.
p.s. to kolejny przykład, że zawód programisty to nie tylko "mama kazała, więc się uczę na tego "informatyka" - trzeba być fascynatem, rozumieć kilka technologii a nie tylko fragment (parsowanie logów, przeglądanie jak zachowuje się strona, co gdzie się dzieje, co Tomaszek miał na myśli itd. rodzaj "reverse engineering").

rmind   5 #11 01.06.2016 13:19

@bachus: Jeśli chodzi o programowanie, w moim przypadku było dość przypadkowo, przyznam, że brałem kilka zawodów i możliwych studiów pod uwagę, włączając w to... psychologię lub filozofię :) Ostatecznie padło na informę m.in. z (spodziewanych, i jak się okazało - faktycznie) pragmatycznych względów. Cieszę się, że nie poszedłem na coś innego, bo nie tylko ja, ale ludzie w ogóle, wiążą duże nadzieje ze studiami, a jak już na nich są, okazuje się, że to jedno wielkie rozczarowanie :P

Ale z doświadczenia mogę powiedzieć, że przy dobrym toku nauki (który sam sobie zaserwowałem), moim zdaniem - prawie - każdy może tego się nauczyć, no ewentualnie chyba że ktoś już ma "sprany" mózg i przychodzi mu nawet z trudnością zrozumienie prostych spraw - akurat takie osoby też przewinęły się.

Co mi się najbardziej podoba we współczesnym programowaniu, to to, czego nie widać (i o czym ludzie, którzy tego nie tknęli, z reguły nie mają pojęcia) - OOP bardzo potrafi rozwinąć zdolność do abstrakcyjnego myślenia, i to w innym sensie, niż matematyczny. Chodzi m.in. o modelowanie.

bachus   20 #12 01.06.2016 13:35

@rmind: trzeba mieć predyspozycje i tyle - jeden się nadaje, drugi nie. Za totalnego debila nie uważam siebie - na studiach robiłem z programowania co kazano, budowałem interfejsy, mam jakieś tam podstawy (Pascal, C, C++, bazy danych). Musiałem robić jednak bardziej zaawansowane rzeczy - ale podobnie jak w matematyce, przy pewnym poziomie wyuczone zasady na pamięć, bez większego zrozumienia co się w rzeczywistości dzieje.
Napiszę więc sobie prosty skrypt wykorzystujący pętle i warunki, ale na tym się kończy. Nie moja dziedzina, nigdy nie sprawiało mi przyjemności programowanie (jeszcze dość mocno obrzydzone przez komercyjne pisanie w PROLOGu...). Trochę żałuję, bo to dochodowa gałąź informatyki, dodatkowo można sobie wygodnie zorganizować pracę np. z domu.

rmind   5 #13 01.06.2016 14:19

@bachus: Fakt są pewne plusy, a z racji sytuacji na rynku, niektórzy podchodzą elastycznie do w niemal wszystkiego. W rezultacie w domu też przez parę m-cy pracowałem, bo tak akurat mi pasowało. Przez pewien czas było ok, ale na dłuższą metę ma dużo wad, jednak ten "rytuał" pracowania w innym miejscu ma sporo zalet, jak się okazało.

Co do prologu, to zupełnie inna broszka. Kiedyś byłem nim zaintrygowany, gdy czytałem na temat jego rzekomych możliwości, ale w praktyce szybko go porzuciłem - nic dziwnego, że rzadko się go spotyka w użyciu. To już lepiej zrobić jakiś system ekspertowy (co zresztą właśnie się robi, np. choćby google).

Myślę jednak, że kwestia właśnie polega na odpowiednim podejściu oraz ww. toku: wszystko zależy od sposobu postrzegania. Pętle, warunki itd. - no zdaje się w latach 70. czy 80. (nie mam pewności, bo albo mnie wtedy jeszcze nie było, albo nie miałem wielkiego pojęcia o istnieniu komputerów :) ale czytałem historię) takie podejście (strukturalne) rządziło. Języki typu Java i C# mocno zrewolucjonizowały wszystko. Obecnie bardziej chodzi o obiekty, komunikację między nimi, abstrakcję, i generalnie ogólnie cybernetykę, czyli naukę o systemach vs. naukę o działaniu procesora i jego cyklach. Ta ostatnia funkcjonowała na starych, 8/16 bitowych maszynach, czyli epokę temu. Swoje też zrobiła szybkość i niska cena hostingu obecnie. W tym sensie, programowanie nie ma zbyt wiele wspólnego z matematyką, a nawet nie trzeba być już tak ścisłym, od kiedy np. w Javie dorobiono szereg udogodnień jak typy generyczne czy kolekcje.

Podam przykład: gdyby djfoxer pisał apkę Depesza w latach 80. to by pewnie napisał w C lub Pascalu coś w rodzaju "wyświetl to, tamo i siamto", a następnie w pętli "sprawdzaj czy połączenie HTTP (lub ekwiwalent :P ) dostarcza nowe dane", które pewnie byłyby jakoś dziwacznie sformatowane. Dzisiaj natomiast można to zrobić w mniej ścisły sposób, na przykład wygląd jest zadeklarowany (a nie zaprogramowany) w apce w XML/XAML, następnie mamy np. obiekt Wiadomość, obiekt Serwera (DP, albo ogólnie jakiegokolwiek serwera), pobieramy z tego ostatniego dane w ustandaryzowanym formacie JSON lub XML, tworzymy odpowiednią Wiadomość, którą nawet możemy zapisać w lokalnej bazie SQLite (to po to, gdybyś np. chciał przeglądać offline) itp. Dużo zmieniło się od tamtych czasów, i moim zdaniem, nie jest to w cale wielka filozofia.

Może zabrzmi to mało wiarygodnie, ale uważam, że przy wytrwałości i chęci z obu stron mógłbym nauczyć (prawie) każdego programować, i to dowolnie "zaawansowanych" rzeczy. Zresztą, mógłbym to nawet zrobić tutaj na blogu DP. ;)

djfoxer   18 #14 01.06.2016 18:23

@bachus @rmind Z programowaniem jest tak, jak to się mówi: easy to learn, hard to master. Niestety obecnie znaleźć pracownika, który zna się na rzeczy jest ciężko. Wielu osobom wydaje się, że jak napisał dwa programy w C++, zna tagi HTML5 na pamięć, wie jak robić podstawowe rzeczy w js, czy zna składnię SQL to już jest master of disaster. Co innego znać podstawy, a co innego jest umieć je wykorzystać z innymi elementami w tworzeniu czegoś większego. Byłem na kilku rekrutacjach, znam też kilka opowieść z przebiegu zatrudniania nowych osób i niestety bywa bardzo różnie. Poza tym IT to niekończąca się nauka, a tego wiele osób nie jest w stanie zaakceptować. Tutaj podstawą jest rozwój osobisty, twórcze myślenie czy umiejętność nauki z nowych dziedzin, które trzeba opanować. Nie zawsze będzie pisało się algorytmy, ale w części zadań będzie wymagana znajomość branży dla której się robi :)

rmind   5 #15 01.06.2016 19:08

@djfoxer: Rzeczywiście w praktyce w aktualnej sytuacji tak bywa. Wiem, że do tej pracy zgłaszają się nawet osoby, które są zaledwie po 1-2 rozdziałach (!) podręcznika programowania, który właśnie zaczęli czytać...

Problem trudności w zdobywaniu doświadczenia jak mi się wydaje dotyczy tego, że nie ma dobrych szkoleń programowania - bo te uczą właśnie tego, o czym napisałeś: składni C++, tagów HTML'a itd. Przez to programista (teraźniejszy czy też przyszły) po omacku uczy się co jak i kiedy wykorzystywać.

Pamiętam, jak się uczyłem C++ jeszcze w szkole średniej, to kiedy wprowadzono zagadnienia OOP, nie miałem pojęcia o co chodzi i po co coś takiego. Nauczyciel wyjaśnił, że zamiast napisać tak jak do "tej pory" (czyt. strukturalnie), można przepisać to na klasy i obiekty. Zrobiłem tak jak sugerował, tzn. przepisałem na obiekty, i wszystko działało, ale na pytanie "a po co tak, skoro tak samo działa?" nie otrzymałem satysfakcjonującej odpowiedzi. Krótko mówiąc, nauczyłem się składni (narzędzi), ale nie nauczyłem się programować (wykorzystywać narzędzia). Długo potem nie mogłem też zrozumieć sensowności używania Interface, a kolejne podręczniki nie podawały praktycznych sposobów jego wykorzystania.

Dlatego doszedłem do wniosku, że szkolenia czy podręczniki programowania są po prostu złe. Podejrzewam, że gdyby właściwie (w praktyczny sposób) przedstawić materiał, ilość czasu wymaganego przez "hard to master", znacząco by się obniżyła. Prawdę mówiąc, od zawsze ciągnęło mnie, by założyć działalność, i może faktycznie nawet kiedyś wypróbuję ten pomysł, ucząc w swojej - nie-swojej firmie początkujących w docelowo maksymalnie skróconym czasie. :)

djfoxer   18 #16 01.06.2016 21:32

@rmind: Powinieneś jakieś szkolenia prowadzić, albo swoją książkę napisać :)

Inventer89   6 #17 01.06.2016 22:52

Super, świetny projekt :)

SebaZ   16 #18 02.06.2016 10:59

Nie mam i raczej nie będę mieć mądrego telefonu z Windows'em, jednak na Win10 zainstalowałem i jestem bardzo zadowolony. Czy appka posiada powieadomienia? (na portalu przy avatarze mamy ikonkę, a czy aplikacji wykrywszy nową wiadomość daje znać czy trzeba ją właczyć i sprawdzić co i jak?)

rmind   5 #19 02.06.2016 17:41

@djfoxer: Dzięki, ale z tym uczeniem miałem na myśli uczenie programistów do pracy w tej działalności, natomiast nie - prowadzenie działalności szkoleniowej :)

djfoxer   18 #20 02.06.2016 17:49

@SebaZ: Tak, jeśli będzie nowe powiadomienie na portalu, w Windows 10 pojawi się komunikat (później będzie on dostępny w centrum powiadomień).

arlid   14 #21 04.06.2016 13:18

Gratulowałem prywatnie, pogratuluję jeszcze raz. Widać pasję, a nie tylko chęć wzięcia udziału w konkursie :)

SebaZ   16 #22 05.06.2016 21:40

@djfoxer bugi czy zgłoszenia to słać na githuba?

https://github.com/djfoxer/dp.notification/issues/1

Autor edytował komentarz w dniu: 05.06.2016 21:49
djfoxer   18 #23 06.06.2016 00:32

@SebaZ: Gdziekolwiek, aby doszło do mnie :)
Aż spr. z ciekawości i na wersji mobilnej i na desktopie jest tylko u mnie jedno powiadomienie tego typu. Rozumiem, że online, przez www jest dobrze?

SebaZ   16 #24 06.06.2016 11:53

@djfoxer: Jest ok, pojawiło się powiadomienie i dostałem je podwójnie, co na zrzucie ekranu widać :)

djfoxer   18 #25 08.06.2016 00:06

@SebaZ: Dziwne, dziwne :) Będę miał rękę na pulsie, dzięki za zgłoszenie :)

SebaZ   16 #26 08.06.2016 00:26

Ciekawostka, powiadomienie nowe (nieoznaczone jako przeczytane) jest wyświetlane podwójnie https://drive.google.com/open?id=0B2EiufXhuWotSTBuNU5aV1VLaDQ

Szczegóły na githubie

Dimatheus   22 #27 10.06.2016 11:40

Hej,

Bardzo dobra wiadomość - sam już nie mogę się doczekać, aż apka na Androida będzie możliwa do testów. :)

Pozdrawiam,
Dimatheus