Nowy język w projekcie – Kotlin

Każdego prędzej czy później, podczas pracy nad projektem, dopada znużenie. Co wtedy robić? Można zrobić dłuższą przerwę. Jako, że nad aplikacją pracuję po godzinach, wystarczyłoby żebym przez kilkanaście wieczorów, zamiast stać przed komputerem (po 8 godzinach siedzenia w pracy zawodowej, warto popracować w pozycji stojącej), zrobił coś innego – na przykład poszedł na ryby.

Tak się jednak składa, że nie wędkuję. Znalazłem więc jeszcze lepsze rozwiązanie: wpuściłem w mój projekt nieco świeżości w postaci nowego języka programowania – Kotlina.

Czytaj dalej

Usuwanie listy – refaktoring w praktyce

Aplikacja pozwalała już na dodawanie nowych list zadań i wybór którą z nich wyświetlić. Była doskonała dla kogoś kto, gdy już coś stworzy, nigdy tego nie usuwa. Jednak ja, będąc zwykłym użytkownikiem i nie mając możliwości skasowania listy, skorzystałbym z możliwości skasowania aplikacji.

Usunięcie listy wydarzyć musi się na dwóch frontach:

  • na ekranie
  • w bazie danych

Dziś zajmiemy się frontem pierwszym. Pokażę Wam jak szybko i łatwo przerobiłem kod tak, aby był łatwiejszy w utrzymaniu i dalszym rozwoju aplikacji.

Czytaj dalej

Kiedy trzeba zaciągnąć dług techniczny?

Dług pieniężny to takie finansowe kalesony – nikt ich nie lubi nosić, są niewygodne i każdy chce jak najszybciej zdjąć, ale niekiedy wyjście na zewnątrz bez nich byłoby bardzo ciężkie. Czasem trzeba wziąć kredyt na inwestycje, bo bez niego realizacja pomysłu zajęłaby 40 lat.

Ale czy dług można mieć tylko wobec banku, rodziny czy znajomych? Nie, dług można mieć też wobec własnego kodu! Taki dług nazywa się długiem technicznym. I ja go właśnie zaciągnąłem.

Czytaj dalej

Zastosowanie wzorca „polecenie”

Pisałem już, że nie chcę stosować w swojej aplikacji wzorca: kiedy trzeba będzie wyświetlić Twoje dane, ktoś Ci zaglądnie do środa, a Ty nawet tego nie poczujesz. Z tego powodu klasy SqlTaskList oraz SqlTask zawierają metody showOn, za pomocą których można je poprosić o wyświetlenie się na podanym widoku; oczywiście kwestiami technicznymi – jak wyświetlić – zajmuje się sam widok.

Czytaj dalej

Testy jednostkowe – czyli dlaczego łamanie prawa Demeter boli

Tak jak niedawno zapowiadałem, przerobiłem kod aplikacji na styku klas DataBase i TaskList. W skrócie: teraz cały kod związany z odczytem zadań z bazy jest w tej pierwszej. TaskList więc nie posiada już metody tasks, a podczas wywołania na nim showOn, dzieje się tylko tyle:

@Override
public void showOn(final TaskListView view) {
  for (ITask task : dataBase.getTasks()) {
    task.showOn(view);
  }
}

No i… okazało się, że wciąż robi za dużo. Ale o tym za więcej chwilę.

Czytaj dalej

Aplikacja jest eksperymentem

Dzisiaj przedstawię Wam jedno z głównych założeń aplikacji o której na tym blogu piszę.

Kto nie programuje obiektowo?

Pisałem już o unikaniu getterów. Chcę żebyście wiedzieli, że jest to częścią filozofii, którą ostatnio jestem zafascynowany: programowania obiektowego. O co chodzi? Przecież dzisiaj wszyscy programują obiektowo! Hm… no właśnie nie do końca. W moim przekonaniu, zdecydowana większość powstającego na świecie kodu, pomimo użycia obiektowych języków: Javy, C#, JavaScriptu itd., nie jest w 100% obiektowa; jest hybrydą obiektowości i programowania proceduralnego.

Czytaj dalej