The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google выпустил J2ObjC 1.0, транслятор из Java в Objective-C

22.01.2016 10:33

Компания Google представила первый стабильный релиз транслятора J2ObjC, преобразующего исходные тексты на языке Java в представление на языке Objective-C, пригодное для использования в приложениях для iPhone и iPad. Код транслятора написан на языке Java и распространяется под лицензией Apache 2.0.

J2ObjC даёт возможность унифицировать процесс разработки приложений на языке Java, ориентированных на использование в различных мобильных платформах. Основу приложения, не связанную с обеспечением работы пользовательского интерфейса, предлагается разрабатывать на языке Java, а обвязку с реализацией интерфейса создавать с использованием родных средств платформы. Например, базовый Java-код, определяющий логику работы приложения и методы обработки данных, может быть использован в программах для платформы Android, iOS или в web-приложениях (для трансляции Java в JavaScript можно использовать GWT).

В процессе сборки приложения при помощи J2ObjC компоненты на языке Java прозрачно транслируются в код на Objective-C, позволяя сформировать финальное приложение для платформы iOS целиком на Objective-C. J2ObjC не является эмулятором и позволяет формировать полноценные итоговые проекты на языке Objective-C, что полностью соответствует требованиям компании Apple в отношении используемых средств разработки. Особенностью J2ObjC является то, что транслятор осуществляет преобразование Java-классов в соответствующие классы Objective-C, позволяя напрямую использовать iOS Foundation Framework.

В J2ObjC поддерживаются все возможности языка Java 8 и большая часть runtime-функциональности, используемой в клиентских приложениях, включая исключения, внутренние и анонимные классы, generic-типы, потоки и отражения. Также поддерживается трансляция в Objective-C и запуск тестов JUnit и Mockito. Для сборки могут быть использованы штатные инструменты, такие как Xcode и Make, имеются плагины для Gradle и Maven. В рамках проекта J2ObjC не планируется предоставление унифицированного платформонезависимого тулкита для разработки пользовательского интерфейса, т.е. для создания интерфейса в редакции приложения для iOS требуется создание отдельной обвязки на Objective-C, Objective-C++ или Swift. Из написанных с использованием J2ObjC приложений Google, поставляемых для платформы iOS, отмечаются Inbox by Gmail, Google Calendar, Google Docs, Google Sheets, Google Slides и Google My Business.

  1. Главная ссылка к новости (http://google-opensource.blogs...)
  2. OpenNews: Google заменит в Android собственную реализацию Java API на OpenJDK
  3. OpenNews: Google выпустил библиотеку libvpx 1.5.0, в которой продолжено оттачивание реализации VP9
  4. OpenNews: Открыт код системы машинного обучения TensorFlow, разработанной командой Google Brain
  5. OpenNews: Компания Apple открыла реализацию языка Swift и реализовала поддержку Linux
  6. OpenNews: Компания Google представила новый алгоритм сжатия данных Brotli
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43714-j2objc
Ключевые слова: j2objc, java, objective-c
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, hoopoe (ok), 10:52, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >> J2ObjC не является эмулятором и позволяет формировать полноценные итоговые проекты на языке Objective-C, что полностью соответствует требованиям компании Apple в отношении используемых средств разработки

    эплы совсем с катушек спрыгнули? они уже указывают в какой среде проги под них писать? может еще и как одеваться будут указывать? :D

     
     
  • 2.9, Юрий (??), 12:01, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Обутые глаза? Не Apple а Google, и не указывает, а рекомендует.
     
     
  • 3.11, Аноним (-), 12:11, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Обутые глаза? Не Apple а Google, и не указывает, а рекомендует.

    Именно Apple. В его каталог-магазин принимаются только программы на Objective-C, Objective-C++ и Swift.

     
     
  • 4.13, fomkin (?), 12:28, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пруфлинк пожалуйста. Интересно, как живут игры на Unity и плюсах, упакованный вебчик на Cordova, АОТный дотнет на Xamarin, AOTный флэш на Adobe AIR? Список технологий можно продолжить.
     
     
  • 5.19, Наркоман (?), 13:39, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    в итоге либо генерируется код на обжси, либо движок с интерпретатором написан на обжси.
     
     
  • 6.20, Crazy Alex (ok), 13:56, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, вообще против сишных библиотек Эпплы тоже не возражают, но всё приложение на C не напишешь
     
  • 5.22, НяшМяш (?), 14:25, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что Юнити генерирует икскод проект с плюсовым кодом, Хамарин скорее всего тоже. Адоб эир тоже скорее всего во что-то переделывается. Ибо эппл не разрешает приложения, которым для работы нужна эмуляция или интерпретация - исключение разве что веб приложения в вебвью.
     
     
  • 6.32, fomkin (?), 23:23, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Юнити генерирует плюсовый код довольно недавно. Раньше у них был форкнутый Mono, AOT которого умел только в ARM32. Xamarin делает прямую трансляцию в машинный код ARM через свой AOT. Тоже самое и Adobe AIR. На деле для Apple важно что бы не было динамической линковки и исполнения машинного кода сгенерированного во время выполнения. По этому пролетают все технологии в JIT, кроме JS для которого Apple предлагает свой собственный рантайм.
     
  • 2.15, jh (?), 12:59, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    конторы специально делают стойки из эпловских компов, потому что их софт официально можно запускать на их железе.
     
  • 2.38, Вареник (?), 06:38, 23/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    iТрусы, iНоски
     
  • 2.39, fi (ok), 12:59, 23/01/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    То же мне проснулся :) сто лет в обед.

    зы. а насчет одеваться - часы от яблока - must be :)

     
  • 2.43, Аноним (-), 03:42, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эпплу на самом деле по барабану, на чем написано - главное, чтобы генерировался нативный arm код, безо всяких там JIT-ов.

    Пунктик про Objective-C был добавлен специально для Adobe, когда те выпустили под видом продакшен-решения недопиленную ерунду, которая из флешки вида echo "Hello World" делала бинарь на полгига, сажающий батарейку за полчаса. Исключительно из опасений, что аппстор мгновенно наводнят программисты на флеше мышкой - чтобы был повод автоматически делать отлуп всем таким поделиям. Несмотря на все возникшие тогда опасения, на практике более ни для чего этот пункт никогда не применялся; когда тот же AIR Adobe довел до ума, никаких препятствий не было.

     
  • 2.47, Кирилл (??), 15:04, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Разработка под иОС и МакОС подразумевает строго работу в рамках стандартных каркасов. Средства разработки же никак не ограничиваются. В оригинале речь идёт о том, что Эпл не пошла на интеграцию JVM ни в каком виде. Более того, из последних релизов МакОСа Яву выпилили полностью.
     

  • 1.2, Аноним (-), 10:57, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    >Java в Objective-C

    А чего не из ФОРТРАНа в COBOL?

     
  • 1.3, Lester (?), 11:05, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Это для сферического кода в вакууме, который ни от чего не зависит?
     
  • 1.5, Сергей (??), 11:15, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Интересно, напишет ли Apple ObjC2J в ответ? ;-)
     
     
  • 2.10, Юрий (??), 12:02, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Интересно, напишет ли Apple ObjC2J в ответ? ;-)

    Зачем? Они уже ушли в сторону Swift

     
     
  • 3.31, Сергей (??), 22:39, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, Swift2J. ;-)
     
  • 2.12, Мяут (ok), 12:26, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Apple - компания с закрытой экосистемой, там слово Java стараются не употреблять. Как и любое другое слово, к которому нельзя приписать Apple и запатентовать.

    Например, не прямоугольник (Rectangle), а Apple® iPad™
    Ну и т.д. :)

     
     
  • 3.48, Кирилл (??), 15:05, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Apple - компания с закрытой экосистемой, там слово Java стараются не употреблять.
    > Как и любое другое слово, к которому нельзя приписать Apple и
    > запатентовать.
    > Например, не прямоугольник (Rectangle), а Apple® iPad™
    > Ну и т.д. :)

    Почему закрытой, коль Эпл сейчас основной спонсор очень многих открытых проектов (с BSD-лицензией)?

     

  • 1.6, Аноним (-), 11:15, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    "В J2ObjC поддерживаются все возможности языка Java 8 и большая часть runtime-функциональности"
    вот ведь как забавно
     
  • 1.7, Аноним (-), 11:25, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Т.е. можно будет писать только для android и автоматом переносить на iPhone и iPad. Хорошо.
     
     
  • 2.8, проходящий (?), 11:36, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    автоматом можно, если не интересует результат
     
  • 2.49, Кирилл (??), 15:07, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Т.е. можно будет писать только для android и автоматом переносить на iPhone
    > и iPad. Хорошо.

    Автоматом нельзя. Это миф для неосилянтов. Очень уж объектные модели различны. Проще вести два проекта, на ОбСи и на Яве, с единого UML-а.

     

  • 1.14, Аноним (14), 12:51, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Swift как язык намного лучше.
    лучше бы наоборот запилили полноценный транслятор Swift в Java, android.
     
     
  • 2.21, Crazy Alex (ok), 14:00, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Гугл заинтересован в том, чтобы Андроид рассматривался как первичная платформа для разработки приложений, а iOS-приложения шли довеском. То, что вы предлагаете, дало бы ровно противоположный результат.
     
     
  • 3.29, Michael Shigorin (ok), 21:20, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Гугл заинтересован в том, чтобы Андроид рассматривался как первичная платформа
    > для разработки приложений, а iOS-приложения шли довеском.

    Вот, не зря поискал -- написал ли кто уже то, что собирался тоже написать.

     
     
  • 4.45, Аноним (-), 03:57, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В последнее время мне Корпорация Добра видится бОльшим злом, чем Эппл и Майкрософт вместе взятые. Именно потому, что работают больше не кнутом, а пряником - который в итоге оказывается тем же анальным зондом, только с малиновым вкусом.
     
     
  • 5.46, Michael Shigorin (ok), 21:07, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В последнее время мне Корпорация Добра видится бОльшим злом, чем Эппл и Майкрософт
    > вместе взятые. Именно потому, что работают больше не кнутом, а пряником

    Кнут у них тоже есть -- как и пряник у тех двоих... но в целом скорее так.

     
  • 2.23, НяшМяш (?), 14:27, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > лучше бы наоборот запилили полноценный транслятор Swift в Java, android.

    Зачем транслятор? Люди уже пилят компиляцию свифта в нативные бинарники для андроида. А уж интерфейс на яве извольте сами.

     
     
  • 3.35, Crazy Alex (ok), 02:42, 23/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тут коллеги порадовали, что есть тренд писать внутренности на плюсах, а потом отдельную морду на каждую мобильную платформу, благо и пилить ничего не нужно. Дополнительная выгода - при желании можно легко использовать на десктопе или сервере.
     
     
  • 4.52, name (??), 16:24, 26/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, так и делаем. Для андроид-С++ еще берется CrystaX а то стандардный не очень поддерживает норм С++
     
  • 3.50, Кирилл (??), 15:08, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> лучше бы наоборот запилили полноценный транслятор Swift в Java, android.
    > Зачем транслятор? Люди уже пилят компиляцию свифта в нативные бинарники для андроида.
    > А уж интерфейс на яве извольте сами.

    Кто-то что-то делает на Свифте? Он же убог до нельзя.

     
  • 2.27, . (?), 18:09, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Swift как язык намного лучше.

    ... чем грузины! :)
    Недо- пере- питон.

     
  • 2.44, Аноним (-), 03:55, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Свифт опенсорснули же: https://github.com/apple/swift

    Желающие могут запилить. :-)

     
  • 2.51, Кирилл (??), 15:10, 25/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Swift как язык намного лучше.
    > лучше бы наоборот запилили полноценный транслятор Swift в Java, android.

    Лучше чем что? Свифт же это убогое пхп в исполнении Эпл.

     

  • 1.16, Аноним (-), 13:09, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    .jar без -src.jar тоже умеет транслировать? А то меня в гугле забанили
     
     
  • 2.30, Michael Shigorin (ok), 21:24, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А то меня в гугле забанили

    Ну и как тогда собираетесь скачивать транслятор? :)

    PS: а бинарники в исходники преобразовывать -- дизассемблирование в эквиваленте.

     

  • 1.17, Аноним (-), 13:12, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    браво! это новый виток в развитии переводчика гугла!
     
  • 1.18, anonymous (??), 13:34, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Так вот почему гугл отказывается от далвика
     
  • 1.24, trueFedeX (?), 14:51, 22/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А тем временем в аппсторе уже полно приложений и игр написанных на RoboVM (https://robovm.com/) . Гугл немного припоздал, как всегда.
     
     
  • 2.25, Crazy Alex (ok), 15:16, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю, гуглу это только в плюс. А так - в конкуренции между инструментами от крупной корпорации-создателя платформы и чем-то сторонним корпорация проигрывает только если сильно чудит.
     
     
  • 3.26, trueFedeX (?), 17:22, 22/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >корпорация проигрывает только если сильно чудит.

    по-моему тут как раз этот случай. Делать транслятор в исходный код другого (кстати устаревающего) языка, тогда когда у кого-то уже рабочий опунсурсный компилятор под эту платформу (с небольшими оговорками)...

     
     
  • 4.42, Аноним (-), 01:42, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну так народ же хочет один раз написать и забыть! ох мечты-мечты(
     

  • 1.53, burjui (ok), 19:50, 26/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Google выпустил J2ObjC 1.0, транслятор из уныло в не нужно

    fixed

    Как разработчик для Android, уже устал от тупоголовости Java (особенно от generics с кривым выводом типов), а при виде кода на Objective-C вообще хочется блевать. Нет бы сделать нормальный С интерфейс к Android, чтобы можно было на любом ЯП написать обёртки и радоваться - заодно любители изращений могли бы иметь большую часть кода приложения на Objective-C, и только UI делить по платформам. Все были бы счастливы. Но нет, мы сделаем интерфейс к платформе на самом геморройном в плане FFI языке, чтобы разработчики не скучали, а потом будем городить костыли. Такое ощущение, будто Android делает какое-то особо упоротое подразделение Google.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру