Projekt Mono na iPhone, czyli jak otwarty .NET omija restrykcje Apple

Apple nie pozwala instalować na swoich produktach mobilnych aplikacji korzystających z wirtualnych maszyn bądź podobnych rozwiązań. Oficjalnie tłumaczy to troską o wygodę i dobro konsumenta, lecz według komentatorów chodzi jedynie o pełną kontrolę nad platformą. Dlatego urządzenia takie jak iPhone nie posiadają Flasha, Javy ani innych wirtualnych środowisk uruchomieniowych. Jednak ekipie z Novella, zajmującej się rozwojem Mono, udało się obejść ograniczenia narzucane przez Apple.

Joseph Hill z Novella w rozmowie z Edem Brunette opowiada, w jaki sposób jego zespół stworzył rozwiązanie pozwalające uruchamiać na iPhone (i iPad) programy napisane dla platformy Mono:

Ed: Dlaczego Apple umożliwia użycie technologii .NET za pomocą MonoTouch, podczas gdy wyklucza użycie Javy na iPhone/iPad?

Joseph: Java (i inne środowiska uruchomieniowe) są wykluczone z platformy iPhone, ponieważ [napisana w niej – przyp. tłum.] aplikacja nie może uruchamiać kodu z zapisywalnej pamięci. Maszyny wirtualne – takie jak Java czy .NET – generują natywny kod z bytecode’u w locie, a następnie go wykonują; jednakże, z różnych względów, jądro iPhone’a nie pozwoli na uruchomienie tego kodu. Technologia Ahead-Of-Time (AOT), dostępna w Mono, omija ten problem generując cały natywny kod – który aplikacja miałaby generować w locie – przed jej uruchomieniem, dzięki czemu uruchamiana na iPhone aplikacja jest w 100% natywna.

Dalej omawiane są ograniczenia w dostępie do bibliotek Mono i mechanizmów .NET z poziomu MonoTouch, a także dostępne narzędzia, pozwalające tworzyć aplikacje w tej technologii. Wywiad kończy się konkluzją Eda:

Miejmy nadzieję pewnego dnia ujrzymy więcej podobnych obejść dla języków takich jak Java czy Lua, bądź być może Apple po prostu ustąpi i zniesie ograniczenia. Programiści powinni mieć możliwość dobrania jak najlepszych narzędzi według ich własnych potrzeb i doświadczenia, a nie arbitralnych zasad ustalonych w Cupertino.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

  1. Awatar eee
    eee

    Po co komuś smartfon bez możliwości instalacji flash? Nie żebym był jakimś miłośnikiem tej technologii, ale nie bardzo wyobrażam sobie smartfon bez opcji oglądania wideo.

    1. Awatar Ło$
      Ło$

      OFFTOP

      Zamień w swojej wypowiedzi "wideo" na "reklam" i już będziesz wiedział dlaczego nie wszyscy kochają flasha 😉
      …a nawet samo "wideo" zdecydowanie bardziej wolę oglądać bez ślamazarnego (na moim kosmicznie wyczesanym sprzęcie z ubiegłego wieku JEST ślamazarny) flasha po drodze.

      1. Awatar Oki
        Oki

        Nawet zabugowana wtyczka flash beta po Linuksy 64bit radzi sobie o wiele lepiej z odtwarzaniem wideo od rozwiązanień typu mplayer-plugin vlc-plugin. Taki mplayer-plugin w 75% prowadzi do zawieszenia lub zamknięcia przeglądarki i nikt o tym nie wspomina tylko wszyscy atakują flasha…

        1. Awatar dzikus
          dzikus

          Taki mplayer-plugin potrafi wyświetlać fullhd w h264 na moim sprzęcie z obciążeniem procka na poziomie 3%, film flash jaki by nie był (może być nawet sd), wysyca 1 z moich procków w 100%.

          Teraz przełóż to na energię i długość pracy na baterii.

        2. Awatar Oki
          Oki

          Taki mplayer-plugin potrafi wyświetlać fullhd w h264 na moim sprzęcie z obciążeniem procka na poziomie 3%, film flash jaki by nie był (może być nawet sd), wysyca 1 z moich procków w 100%.

          Sprawdziłem przed chwilą na:
          http://www.youtube.com/watch?v=Js7wxoqeVK0
          24-29%CPU dla 360p
          42-49%CPU dla 720p
          AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
          Moim zdaniem jest to akceptowalny wynik bez akceleracji sprzętowej, której mój sprzęt w przeciwieństwie do twojego nie wspiera.

    2. Awatar trasz
      trasz

      @eee: iPhone ma mozliwosc ogladania video, na przyklad z YouTube. Nie potrzebuje do tego flasha.

    3. Awatar AdamK
      AdamK

      Co ma flash do video?

      1. Awatar maciek
        maciek

        Większość materiałów wideo w Sieci dalej jest udostępniana z użyciem flasha. Nie żeby było to właściwym podejściem do tematu, ale tak jest.

        1. Awatar sprae
          sprae

          Coraz większa część jest w Silverlight i co?

        2. Awatar oO
          oO

          Silverlighta ma może 5% użytkowników. Ci, którzy w to inwestują to samobójcy…

        3. Awatar LM
          LM

          Silverlight to powstały z grobu Microsoft Chrome aka Chromeffects. Z grobu powstało, do grobu wróci.

          http://windowsitpro.com/article/articleid/17899/m…

        4. Awatar sprae
          sprae

          oO: Ale SL jest promowany przy najbardziej obleganych streamach. Olimpiady, rozdania nagród itp. Ms nie jest głupi.

        5. Awatar przemo_li
          przemo_li

          Co nie zmienia faktu, że wolę flasha od SL 😀 ot wolę mieć różna zamknięte paskudztwa od rożnych dostawców niż wszystko od jednego.

          PS HTML5 stara się właśnie wykosić SL, AIR, JavaFX, Flasha (w niektórych zastosowaniach) i jemu kibicuję.

        6. Awatar aix_Wolna_Głupota
          aix_Wolna_Głupota

          Silverlighta ma może 5% użytkowników. Ci, którzy w to inwestują to samobójcy…

          To podobnie jak ci którzy inwestują w Linuksa, który ma mniej niż 5%.

        7. Awatar zhost
          zhost

          To nie video jest złe tylko technologie flash i sl. Na szczęście html5 nas uwolni od nich.

    4. Awatar sprae
      sprae

      Adobe w kolejnym wydaniu Flash CS5 chce zastosować również AOT do kompilacji apletów flashowych na platformy mobilne Apple. Jak dobrze się uda to nawet ten wymysł Flex/Air będzie.

      Co do Mono to taki był wymóg jednego z użytkowników – firmy stojącej za silnikiem Unity3d.

    5. Awatar yrk
      yrk

      Ja się bardziej zastanawiam po co komu smartphone, którego producent ze względu na "wygodę" i "dobro konsumenta" ogranicza jego zasób oprogramowania do minimum pochodzącego wyłącznie od producenta (Apple Store). Huh? No tak, zapomniałem… przecież chodzi o to jabłuszko na obudowie. Dziwie się tylko ludziom, że się tak dymać dają.

      Nawet Windows zapewnia mi możliwość instalacji wolnego oprogramowania typu OO, Firefox itp. Steve Jobs widocznie poszedł trochę dalej.

      1. Awatar sprae
        sprae

        Tak, ustanowił, że nie będziemy wykonywać dynamicznego kodu.
        Dzięki temu genialnemu posunięciu dramatycznie zmniejszył atrakcyjność urządzenia w grupie wielbicieli Flasha, dramatycznie też podnosząc jego bezpieczeństwo i płynność działania przeglądarki. Mono się dostosowało, Adobe stara się też, ale dziennikarze szukają dziury w całym.
        Proponuję też doczytać "Doktrynę jakości" i zastanowić się czy dla większości ludzi urządzenie wyświetlające skaczące strony z flashem z zapchaną pamięcią jest atrakcyjniejsze od płynnego z samym html.
        Tylko proszę nie mówić, że ludzie zainstalują sobie adbloka i wyłączą flasha kiedy nie będzie potrzebny. W Firefoxie robi to 1%.

        1. Awatar dzikus
          dzikus

          Tylko co ma piernik do wiatraka?

          Twój przedmówca o dostępie do softu, ty o technologiach softowych.

          Wyobraź sobie że ja potrafię napisać i skompilować program na iPhone'a, ale to Steve&apple nie pozwala mi tego programu rozdawać za darmo.

          PS. Wiatrak da się spierniczyć :).

      2. Awatar ufoludek
        ufoludek

        @yrk: Wyniki sprzedaży iPhone'a dowodzą, że jednak jakieś zastosowanie do takiego smartfona ludzie potrafią znaleźć.

        1. Awatar eee
          eee

          – pochwalenie się przed znajomymi
          – szpan na ulicy/w tramwaju
          – dowartościowanie ego
          – wyrwanie jakiejś przelotnej osoby
          – granie w durne gierki w wolnej chwili
          – wykonywanie rozmów? chociaż niezbyt to wygodne do trzymania przy uchu :/

      3. Awatar trasz
        trasz

        @yrk: Moze dlatego, ze tego "ograniczonego oprogramowania" jest rzad wielkosci wiecej niz nieograniczonego oprogramowania na inne platformy. Albo dlatego, ze nie ma problemu, ze cos nie dziala albo zawiera malware – znow, inaczej niz w innych platformach.

  2. Awatar trasz
    trasz

    Czy jakakolwiek aplikacja rzekomo omijajaca zasady wprowadzone przez Apple w sposob opisany w artykule znalazla sie w AppStore? Bo jesli nie, to to "omijanie" niespecjalnie ma miejsce.

    A co do zasad ustalonych w Cupertino – cos za cos. Z jednej strony troche trudniej programistom, z drugiej nieporownywalnie latwiej uzytkownikom. Fakt, iz iPhone'a to jednoczesnie platforma mobilna z najwieksza iloscia oprogramowania i jedyna platforma bez malware'u nie bierze sie z nikad.

  3. Awatar Cause
    Cause

    Moment. Czym się różni w takim razie rewolucyjny Ahead-Of-Time (AOT) od starej, dobrej statycznej kompilacji?

  4. Awatar krzabr
    krzabr

    Apple z blokowania aplikacji firm trzecich zarabia krocie w appstore stąd nie ma co się dziwić dlaczego tak radykalnie podchodzą do tej sprawy .

    A flash obejrzyj cokolwiek z yt bez niego , chociaż Iphone omija ten problem 😉

    1. Awatar sprae
      sprae

      "Apple z blokowania aplikacji firm trzecich zarabia krocie w appstore"

      Czy to samo sobie nie przeczy?

      1. Awatar maciek
        maciek

        Nie. Gdyby działały głupie gierki flashowe mniejszy byłby popyt na głupie gierki z AppStore!

        1. Awatar sprae
          sprae

          Maćku: To tylko hipoteza. A co z głupimi gierkami w html5? To co można zobaczyć na chromeexperiment, albo w freeciv dla html napawa pełnym optymizmem.

        2. Awatar sprae
          sprae

          Z resztą teraz developerzy tych głupich gierek flashowych będą mogli sobie w końcu zarobić.

        3. Awatar krzabr
          krzabr

          Znowu błąd składni chodzi o to że gdyby apple umożliwiło instalowanie aplikacji spoza appstore to miałoby mniejsze zyski z tego sklepu .

          A html5 dopiero się rozkręca , a gry robione pod niego czy flasha raczej różnia się od gierek z appstore , w appstore są głównie wyścigówki czy strzelanki czyli coś co standardowo było w javie . A flash to gierki innego typu . 🙂

          Co do html5 to nie znam gierek używających tej technologi więc się nie wypowiadam .

        4. Awatar maciek
          maciek

          Sprae: oczywiście! Liczę, że w przyszłości HTML5 wyprze flasha również w roli platformy głupich gierek, bo jak słusznie zwracasz uwagę, da się to zrobić.

          Inna rzecz, że jeśli Safari w iphone obsługuje Javascript, to znaczy, że w iPhone działają "aplikacje korzystające z maszyn wirtualnych lub podobnych rozwiązań", pod warunkiem, że rozwiązaniem tym jest Javascript w Safari 😉

        5. Awatar sprae
          sprae

          W ARM jest jeszcze Jazelle. Nie wiem czy na to pozwala Apple.

    2. Awatar Sebastian Krzyszkowi
      Sebastian Krzyszkowi

      "A flash obejrzyj cokolwiek z yt bez niego" – żaden problem 😛

      1. Awatar morsik
        morsik

        Dokładnie. Akurat w iPhonie jest odtwarzacz wideo z YouTube. Jest to natywna aplikacja na iPhona i nie wymaga żadnego flasha…

        1. Awatar wujek_bogdan
          wujek_bogdan

          a jak w zasadzie działa ten player youtube? używa html5, czy jakiegoś innego, specjalnie dla tego celu napisanego przez apple wynalazku?

        2. Awatar marcinsud
          marcinsud

          @wujek_bogdan filmy na yt są też w mp4 więc pewnie ściąga tamta wersję, albo filmy są konwertowane na jakimś serwerze. Sam player działa pewnie tak samo jak playery niemal wszystkich telefonów które się teraz sprzedaje. Nawet tanie ciasteczko od LG ma playerka.

        3. Awatar jellonek
          jellonek

          na yt od niedawna dostepne sa filmy w postaci czegos normalnego zjdaliwego dla html5 – i to tez jako opcja wylaczenie.
          natywnym dla flash formatem video jest flv

        4. Awatar morsik
          morsik

          wujek_bogdan: poprostu streamuje plik z youtube.com.
          Na ekranie początkowym widzisz listę filmów polecanych, lub szukajkę, szukasz i odtwarzasz. Żadnego html5, żadnego flasha. Poprostu program.

  5. Awatar piotr.jaskulski
    piotr.jaskulski

    Jak ktoś chce programować w Lua aplikacje na iPhone to może: http://anscamobile.com/corona/

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *