Sławek Rudawski

Hyde open source and mobile first theme for Jekyll. Made by @mdo.

© 2017. Sławek Rudawski All rights reserved.

Konfiguracja per środowisko w ReactNative

Informacje, którymi nie warto się dzielić znaleźć się mogą także w plikach projektu mobilnego. Oprócz tego możemy trafić na wszelkie zmienne zależne od środowiska, w którym chcemy uruchomić aplikację (adres serwera), klucz do api, z którego korzystamy bezpośrednio na telefonie i czego sobie tylko dusza developera zamarzy.

Informacje, którymi nie warto się dzielić

Tworząc oprogramowanie prędzej czy później dotrzemy do momentu, że gdzieś w repozytorium pojawią się nam dane, którymi nie chcielibyśmy się dzielić z całym światem: connection string do bazy danych, nasz klucz prywatny do zewnętrznego api. W idealnym świecie takie informacje nie powinny leżeć nigdzie na repo z kodzikiem. Połączenie z bazą danych powinno być załatwione przez serwer CI (konfigurację możemy trzymać na INNYM - niepublicznym - repozytorium), na pewno znajdzie się też sposób na wstrzyknięcie innych ustawień. Jednak co zrobić w przypadku, gdy nasze repozytorium leży na githubie, stawianie CI mija się z celem, bo projekt jest na tyle mały, że nakład pracy włożony w postawienie kolejnej instancji TeamCity zwróci się po długim czasie, a kodzik musi leżeć w publicznym miejscu?

ReactNative Remote Debugging

Rozwijanie aplikacji mobilnej wymaga połączenia między maszyną developerską a urządzeniem mobilnym. O ile w przypadku korzystania z emulatora to nie jest żaden problem - po prostu uruchamiamy kolejne okienko, to w przypadku fizycznych urządzeń sprawa zaczyna się delikatnie komplikować. Przywykłem do tego, że aby wgrać nową wersję aplikacji, musiałem podpinać telefon do komputera za pomocą kabelka USB.

Szukajka

Połączenie między telefonem a backendem działa znakomicie - możliwe jest dodawanie książek i ich wyświetlanie. Potencjalnym problemem, który może się pojawić w przyszłości jest duża ilość książek i konieczność przewijania listy w poszukiwaniu tej jednej. Jak temu zaradzić? Dodać szukajkę!

Czas decyzji

Projekt wkroczył w etap, w którym trzeba podjąć decyzję o tym, jak informacje będą przekazywane wewnątrz systemu. U bram huba stoi aplikacja mobilna i łaskawie czeka, aż ktoś obsłuży jej zapytanie odnośnie stanu biblioteki. Ta sama aplikacja jest też w stanie zażądać odnalezienie książki, której ISBN w pocie procka zeskanowała z książki umieszczonej w świecie niedostatecznego światła i nie wiadomo jakich jeszcze niebezpieczeństw…