Google выпустил J2ObjC 1.0, транслятор из Java в Objective-C
Компания 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.