Chcę zbudować bibliotekę parsowania SyncML ( bez interfejsu użytkownika ), która powinna być w stanie budować komunikaty na podstawie informacji dostarczonych przez aplikację hosta, dostarczanych metodami biblioteki. Ponadto biblioteka powinna mieć możliwość wykonywania wywołań zwrotnych do metod w aplikacji hosta.
Chcę móc to skompilować i udostępnić na jak największej liczbie platform: Windows, Windows Phone 7 OS, OSX, iOS, Linux, Android, BlackBerry. Zasadniczo jak najwięcej platform, jak to możliwe.
Priorytetem jest mieć to na urządzeniach mobilnych.
Pytania:
- Jakiej konfiguracji powinienem użyć? (języki programowania, kompilatory, IDE itp.)
- Jak skompilować tę bibliotekę dla różnych platform i jak się z nią połączyć?
- Wszelkie inne informacje? np. artykuły na temat rozwoju międzyplatformowego?
Nigdy wcześniej nie realizowałem tego rodzaju wieloplatformowego projektu, więc wszelkie dostępne informacje, które skierowałyby mnie w dobrym kierunku, byłyby mile widziane.
Ja sam mam doświadczenie w C # / .NET i Objective-C.
Możesz wypróbować Java - Java Runtime Environment (maszyna wirtualna) jest wieloplatformowa, Java może być używana na urządzeniach mobilnych z Androidem (lub Java ME), a .NET jest bardzo podobny.
źródło
To nie jest jeden wybór, ale wiele. Choć kuszące jest znalezienie jednej rzeczy, która wszędzie się pojawia, nie zawsze jest to najlepszy sposób.
Na przykład, chociaż możliwe jest ściśnięcie kodu C ++ na platformie Windows Mobile, wszystko .NET zawsze będzie tutaj łatwiejsze niż jego odpowiednik z punktu widzenia wsparcia.
Podobnie, trzeba dokonać poważnego wyboru, czy chcesz, aby był on natywny, czy w czasie wykonywania i czy jesteś ściśle ograniczony do sieci lub bardziej ogólnej mocy generycznej? Na przykład Adobe Runtime jest bardziej wszechobecny, ale ograniczy się do tego, co możesz zrobić w porównaniu z podstawowymi językami programowania.
Najważniejsze, jak sądzę, to rodzaj i poziom GUI, który chcesz zbudować.
Teraz nadchodzą najbardziej obiecujące wybory.
za. W systemach Symbian, Blackberry, Android, BREW i Bada (samsung) Java / J2ME jest najczęstszym sposobem. Chociaż w wielu przypadkach możesz być lepszy w C / C ++, jeśli chodzi o rdzenne rzeczy na niektórych platformach.
b. Dla Windows .NET z dowolnym obsługiwanym językiem byłoby dobrze.
do. Na iOS - nie ma innego wyboru niż Cel C. To NIE jest bardzo C ++, więc nie liczę go jako celu
Oto odniesienie do wiki, które pokazuje zestaw wszystkich platform, który pokazuje wszystkie opcje i ich zastosowania.
Dzięki Twojemu pytaniu dowiedziałem się z powyższego linku wiki, że istnieją teraz zestawy SDK, które próbują rozwiązać powyższy problem. Dwie najbliższe to:
Marmolada: http://www.madewithmarmalade.com/marmalade/supported-platforms to ciekawie obsługuje prawie wszystkie platformy. Windows polega na dodaniu, aby stworzyć pełny krąg.
Kod cząstkowy: http://www.particlecode.com/
Jeszcze ich nie używałem, ale brzmi interesująco.
źródło
.NET jest trudno dostępny na wielu platformach, a Objective-C jest jeszcze gorszy, a ponadto .NET jest dość powolny, a ObjC w zasadzie nie ma wsparcia poza Apple. C jako język w zasadzie nie jest nawet wart rozważenia, chyba że jakiś czynnik zewnętrzny zmusza cię do jego używania.
Jedynym możliwym do uzyskania językiem jest C ++.
źródło