sobota, 15 września 2007

Programowanie pod Symbianem w Pythonie.

Coraz bardziej zaczynam się interesować możliwościami jakie daje programowanie pod Symbianem. Powód: coraz więcej usług internetowych powstaje z myślą o użytkownikach komórek. Co to oznacza? Tworzenie serwisów internetowych i zawartości dodanej pod kątem użytkowników komórek.

Istnieją spore możliwości biznesowe i jak korzyści dla programistów wchodzących w ten rynek.
Można zauważyć, że jest sporo pośredników którzy chcą dostarczać zawartość do komórek. W Polsce takim pośrednikiem znanym z reklamy prasowej jest Wapster. A na świecie Handango.

Większość tam zawartości to masowe oprogramowanie, gry, zawartość graficzna i jak multimedialna. Ale prawdziwy interes tkwi w tworzeniu oprogramowania wspomagającego użytkowników komórek w korzystaniu z serwisów i usług internetowych Web 2.0 ( a także w usprawnianiu procesów biznesowych).

Przykłady? Google pozwala na pisanie bloga z poziomu urządzeń mobilnych, przeglądać Gmail czy przeglądać RSS przez Google Readera. Yahoo pozwala na korzystanie z ich serwisu internetowego użytkownikom urządzeń mobilnych. W Polsce dopiero w świadomości webmasterów i jak ich klientów zaczyna się pojawiać potrzeba tworzenia zawartości serwisów internetowych skierowanych do użytkowników urządzeń mobilnych. Więcej informacji można o tym można przejrzeć na blogu Tomasza Wieczorka i na blogu Mariana Witkowskiego.

Z perspektywy czasu można by powiedzieć że możliwości jakie daje internet w komórkach dopiero zaczyna być zauważany przez użytkowników komórek. Dla większości z nich komórka to urządzenie do wysyłania SMS-ów, a także rozmów głosowych. Funkcjonalności komórek zaczynają kreować nowe potrzeby wśród użytkowników. Aparat fotograficzny, odtwarzacz multimedialny czy bluetooth, a także obsługa internetu sprawiają, że ludzie zaczynają obeznajmiać sie z tymi funkcjonalnościami. Więcej informacji o funkcjonalnościach komórek można przeczytać na blogu Karoliny Lis

Podobnie rzecz sie ma z rozwojem oprogramowania dla tworzenia programów pod komórki. Można powiedzieć że standardowym systemem operacyjnym dla komórek staje się Symbian.
Najbardziej znanym językiem programowania pod komórki jest Java a szczególnie to co jest w J2ME. Adobe od pewnego czasu masowo rozwija FlashLite. - wersję Flash Playera dla użytkowników komórek. Natomiast Nokia zauważyła, że programowanie w Javie czy w C++ dla Symbiana jest zbyt trudne dla większości ludzi, którzy zechcieliby programować we własnym zakresie, więc wprowadziła interpreter Pythona dla Symbiana. W przyszłości być może programiści .NET będą programować pod Symbiana dzięki obsłudze CompactFramework.NET poprzez silnik wykonawczy jaki dostarczy im firma z RPA Red Five Labs . Tak więc pod Symbianem mamy spory zestaw języków programowania. Od "niskopoziomowego" programowania w C++ poprzez masowe tworzenie oprogramowania na komórki w Javie, skończywszy na niszowych zastosowaniach ActionScriptu w FlashLite. oraz w pisaniu skryptów w Pythonie.

Uważam, że dla kogoś kto chce szybko zobaczyć jak się programuje pod Symbianem, a także do tworzenia własnych skryptów polecam Pythona. Programowanie w Pythonie nie jest trudne. Można na początek przejrzeć wątek (po polsku) o programowaniu w Pythonie w Symbianie. Potem można spokojnie przerobić materiał "Python for Series 60" Jurgena Scheible. Kolejnym krokiem jest zapoznanie sie z zbiorem informacji dla programistów Pythona na Nokii, a także na Forum Nokii. bądź poczytać forum dyskusyjne dla programistów Pythona. Myślę, że Ci którzy zaczną poznawać Pythona pewnie znajdą czas na wykorzystanie Frameworka Flyer (kod źródłowy i przykłady).

7 komentarzy:

rattkin pisze...

Dziwi mnie, że ktoś tak dobrze obznajomiony z Flexem i ideami web2.0 skłania się ku platformie która szybkim krokiem zmierza ku upadkowi.

Obecny rynek aplikacji mobilnych, a i technologii ich wytwarzania, jest w opłakanym stanie. Nie naszych komórkach nie mamy jakichś przebojowych programów, które wdarły się do świadomości społecznej i których używamy często. C++ jako język programowania to coś co odrzuci wielu. J2ME? Ktokolwiek próbował pisać aplikacje w tak okrojonym środowisku Java, ten wie jak przykre i bezowocne jest to doświadczenie.

W komórkach uwypukli się ten sam trend który mamy obecnie w "domowych komputerac" - to te same urządzenia. Coraz mniej aplikacji osadzanych będzie offline'owo na komórce, a coraz więcej usług i aplikacji dostępnych będzie online. Mamy już ustabilizowane narzędzie do odczytywania tychże aplikacji i jest nim uniwersalna przeglądarka webowa. To raczej na niej należałoby się skupić. Od kilku lat już, osobiste telefony komórkowe są w tej samej pozycji - stagnacji. Jedyne co się w nich zwiększa to rozdmuchana liczba pseudopikseli w dołączanej do nich kamerze.

Proszę spojrzeć na model na jaki postawił Steve Jobs w swoim iPhonie - po co osadzać aplikacje lokalnie i odcinać urządzenie od internetu - w zamian wyposażmy je w prawdziwą przeglądarkę i pozwólmy światu działać. Jak kontrowersyjny by to model nie był, prawda jest taka, że będzie wiodącym.

Michał Małaj pisze...

Nie zgadzam się z tezą, że platforma mobilna zmierza ku upadkowi. Czas powstawania nowych wersji Symbiana jest bardzo szybki.
(całkiem niedawno ogłoszono wydanie Symbiana w wersji 9.5).

Jedynym rynkiem gdzie platformy mobilne intensywnie rozwijają się jest Daleki Wschód, nawet "wyprzedzają" to co mają do zaoferowania operatorzy w USA czy w Europie. W Japonii czy w Korei Południowej dominująca rolę odgrywa MOAP (wersja Symbiana). A co potrafią urządzenia mobilne na tamtym rynku ? Są "zbyt" nasycone bajerami

C++ pod Symbianem czy J2ME są zbyt trudne. Dlatego będzie trend tworzenia aplikacji na komórki opartych na internecie. Problem polega na tym takie korzystanie z internetu jest kosztowne. Dlatego przypuszczam, że o wiele lepiej rozwinie się rynek pisania skryptów w Pythonie. Pliki skryptów są bardzo małe a pozwalają dużo na wykorzystanie możliwości komórki z Symbianem.

Model rozwijania aplikacji jaki wybrał Steve w swoim iPhone ma sens gdy koszt łączenia z internetem jest stały. W Europie raczej jeszcze długo będziemy uzależnieni od infrastruktury GPRS, która raczej nie sprzyja powstawaniu aplikacji internetowych na komórki.

Można zauważyć też inny trend do tworzenia aplikacji internetowych które by pracowały w sytuacjach offline. To ma kluczowe znaczenie w przypadku tworzenia aplikacji internetowych na komórki gdyż jakość połączenia może być różna w zależności od wielu czynników.

Google Gears i jego wykorzystanie urządzeniach mobilnych pozwoliłoby na tworzenie dobrych aplikacji internetowych.

Na razie uważam że skrypty Pythona i jak FlashLite 2.x za dobre narzędzia do tworzenia aplikacji pracujących w trybie online i jak offline na komórkach w Symbianie.

rattkin pisze...

Problem tkwi w odpowiedzi na to pytanie : jakiegoż to rodzaju aplikacji offline'owych potrzebujemy w telefonach? Nie ma sensu przecież przenosić tego co mamy w dużym laptopie czy nawet na komputerze desktopowym do malutkiego urządzonka, ktore ma nam służyć wtedy kiedy od tych dużych jesteśmy właśnie odcięci. Wydaje mi się, że trudno teraz wymyślić aplikację offline'ową która jest uzyteczna i przydatna w telefonie. A nawet jeśli, zawsze pozostaje problem jej aktualizacji i utrzymania - coś co w sieci przestaje byc problemem.

Koszt użytkownia sieci wcale nie jest znów taki wysoki (a będzie stopniowo taniał przy zwiększeniu jakości), a pamiętać należy, że nie korzystamy z niej stale, a jedynie dorywczo - właśnie wtedy gdy potrzebujemy konkretnej informacji lub usługi jaką aplikacja internetowa oferuje.

Michał Małaj pisze...

Z oprogramowaniem na komórki w Symbianie jest podobnie jak kiedyś z oprogramowaniem na Windows Mobile.

Siła aplikacji komórkowych może tkwić w synchronizacji przez internet. To polega na tym że użytkownik dostaje wersję oprogramowania na komórki będącą kopią "aplikacji internetowej". W każdej chwili może pracować na danych zawartych na serwerze lokalnym czy na serwerze zdalnym.

W praktyce może to polegać na napisaniu aplikacji internetowej w Pythonie, bazującej na Racconie (Mobile Web Server), który jest lokalnym serwerem. W takim modelu programu serwer zdalny służy do wysyłania skryptów i plików z danymi do lokalnych serwerów, oraz do synchronizacji danych pomiędzy lokalnymi serwerami. Użytkownik obsługuje całą aplikację korzystając z lokalnego serwera w komórce przez przeglądarkę internetową.

Dlaczego warto wybrać ten model?
Po pierwsze, pozwala na wykorzystanie możliwości komórki z których nie można wykorzystać z poziomu samej przeglądarki internetowej. Na przykład komórka ma kamerę więc wideotrasnmisja będzie mozliwa jak ktoś będzie znal DNS serwera lokalnego.

Po drugie, może ułatwić też tworzenie własnych aplikacji VOIP.
czy mechanizmów GPS i lokalizacji bądż syntezatorów mowy.

Po trzecie, wybór Pythona jako języka po stronie serwera lokalnego pozwala na wykorzystanie modułów Symbiana na komórce na której jest ten serwer.

Oczywiście nie wyklucza to tworzenia klasycznych aplikacji internetowych, które maja być zoptymalizowane pod przeglądarki internetowe.

Tym komentarzem chciałem zwrócić uwagę na to że coś co wymagało pisania specjalnych midletów, jest teraz możliwe za pomocą Pythona.

rattkin pisze...

No cóż, czemu nie Python :) - ostatecznie wszystko lepsze od J2ME.

maliboo pisze...

Aplikacja offline'owa w telefonie brzmi prawie jak oksymoron;)

kapelusznik pisze...

Proszę o jakiś komentarz, podpowiedź, w czym najlepiej zacząć naukę programowania na platformy mobilne, przy założeniu, że aplikacje będą musiały wykorzystywać bluetooth do wzajemnej komunikacji pomiędzy telefonami.