Как написать программу для iOs на java

В моем классе информатики я выполнил все мои проекты; Поэтому мой учитель подумал, что было бы неплохо разработать приложения для IPhone. Единственные проблемы в том, что класс преподается в Java, а приложения IPhone написаны в Objective-C. Мне было интересно, если кто-то разработал приложения на Java, с XMLVM. Этот компилятор (предположительно) преобразует java-байтовый код в Objective-C (без необходимости использования яблочного компьютера или знаний Objective-C). Правильно ли это? http://www.xmlvm.org/overview/ Вот пример кода Java-кода, используемого на IPhone: http://www.xmlvm.org/iphone/#

Brendan 12 янв. 2010, в 19:27
Поделиться

На сайте вроде все сказано. Но помните, вы на самом деле не пишете Java, вы пишете XML! xmlvm.org/iphone

Matt Ball 12 янв. 2010, в 17:35
Brad Larson♦ 12 янв. 2010, в 19:53
jeet.chanchawat 25 июль 2014, в 21:13
Показать ещё 1 комментарий

Поделиться:

19 ответов

Лучший ответ

Если вы закончили свои другие проекты, почему бы не потратить время на изучение Objective-C? В Интернете есть масса материалов, которые помогут вам начать работу. Честно говоря, это не будет так сложно, и научиться делать некоторое управление памятью будет отличным упражнением. Вы запрограммировали на C раньше?

Сектор Газа — Демобилизация

Большинство кросс-компиляторов не будут делать отличную работу по преобразованию вашего кода, и отладка вашего проекта может стать намного сложнее, если вы разработаете их таким образом.

Amir Afghani 12 янв. 2010, в 18:38
Поделиться
Я знаю C ++, C # и немного C . так что да, я уже делал НЕКОТОРЫЙ C раньше .
Brendan 12 янв. 2010, в 17:42

Основные трудности для людей Java / C # / ActionScript / JavaScript заключаются в (1) существовании и синтаксисе для указателей и (2) ручном управлении памятью. Поскольку у вас есть немного C ++ и C под вашим поясом, вы сможете сравнительно легко подобрать Objective-C.

Chris Hanson 12 янв. 2010, в 20:54
Теперь это возможно с рамкой разрыва телефона
Pratik 15 окт. 2012, в 12:09

Другим относительно новым вариантом является Intel Multi-OS Engine . libgdx использует для развертывания на iOS.

Quazi Irfan 23 дек. 2016, в 22:59
Ссылка на учебник мертва.
Crouching Kitten 21 фев. 2017, в 21:58
Seb 07 июнь 2017, в 13:47
Потому что вам нужно сосредоточиться, и поэтому это не очень хороший ответ.
user8389458 22 март 2018, в 05:06

Показать ещё 5 комментариев

Не совсем ваш ответ, но почему бы не попробовать некоторые разработки Android? Нет необходимости в Mac, с открытым исходным кодом, без инвестиций, на основе Java.

Andiih 12 янв. 2010, в 19:21
Поделиться

Ну, я мог бы спросить своего учителя, будет ли это лучше, но сейчас он настроен на разработку iPhone .

Brendan 12 янв. 2010, в 17:34
Это хорошая идея.
D.C. 12 янв.

2010, в 17:37

почему это становится недооцененным? По общему мнению, это единственное разумное решение? Downvoters объясни себя 🙂

Andiih 12 янв. 2010, в 18:53
+1, прагматичное решение.
missingfaktor 23 фев. 2010, в 08:58
b1nary.atr0phy 08 авг. 2015, в 01:05
Lloyd Sargent 21 фев. 2017, в 15:01
Просто пытаюсь быть ПОЛЕЗНЫМ.
Andiih 22 фев.

Как стать программером под iOS с нуля

2017, в 16:49

Нет, это НЕ полезно. Он спрашивает о Java на iPhone. Ваш ответ был «используйте Android вместо». Он не может изменить какое устройство использовать (или, по крайней мере, это не было в рамках вопроса). Вот почему это не полезно.

Lloyd Sargent 18 апр. 2017, в 19:33

ОП спрашивала о невозможном назначении учителя. Поскольку это был Java-класс, было полезно предложить разработку Android, а не iPhone. Я не хотел отвечать «Нельзя разрабатывать приложения для iPhone на Java». И так как это был класс Java (не класс iPhone), это было в границах тела вопроса (хотя и не заголовка)

Andiih 20 апр. 2017, в 13:57
Seb 07 июнь 2017, в 13:48
Показать ещё 8 комментариев

Я думаю, нам придется подождать еще пару лет, чтобы увидеть больше прогресса. Однако теперь доступно больше фреймворков и инструментов:

Вот список из 5 вариантов:

  • Кодовое имя один
  • RoboVM
  • Птичий не сопровождающий
  • XMLVM
  • J2ObjC
  • Intel Multi-OS Engine снят с производства

Dalorzo 23 апр. 2014, в 00:58
Поделиться
Хороший список, кажется, что они могут быть лучшими.
setherj 02 июль 2014, в 22:46
RoboVM закрыт. robovm.com/robovm-winding-down
Maciek Łoziński 01 авг.

2016, в 21:39

Я думаю, ваш учитель отправил вас по неправильному пути.

Это классический пример попыток поместить квадратный штифт в круглое отверстие. Лучший способ разработки для iPhone — это iPhone SDK и цель C. Лучшим способом разработки для Andriod является Java и Android SDK. Лучший способ разработки для WinMobile — это С#/VB и .Net Framework.

Читайте также:
Как работать в программе ganttproject

Как вы можете видеть, у каждого есть свой «лучший» SDK. Поскольку вы только изучаете Java, я бы предпочел играть с Java и Android.

deanvmc 12 янв. 2010, в 19:31
Поделиться

Ну, я знаю C #, немного C ++ и другие языки, поэтому, возможно, изучение Objective-C не будет для меня слишком сложным. Я просто пытаюсь понять, насколько сложно было бы использовать Java. Мой учитель только что бросил это в меня сегодня .

Brendan 12 янв. 2010, в 17:40

Также не распространяйте себя, люди имеют привычку знать много языков, но не очень хорошо знают один. Я бы посоветовал на некоторое время исключить цель C из списка и поиграть с множеством Java SDK.

deanvmc 12 янв. 2010, в 20:52

Выучите как можно больше языков. Это даст вам оценку силы (и слабости) каждого. Лично я знаю около 10 языков, хотя признаюсь, что в некоторых из них я ржавый.

Lloyd Sargent 21 фев. 2017, в 15:04
Показать ещё 1 комментарий

Существует новый инструмент под названием Codename one: один SDK на основе JAVA для кода в WP8, Android, iOS со всеми расширенными функциями

  • Полная среда Android с супер быстрым симулятором Android.
  • Симулятор iPhone/iPad с легким переносом приложений iPhone на iPad с большим экраном в считанные минуты.
  • Полная поддержка стандартной отладки Java, профилирование приложений на любой платформе.
  • Легкая тема/стиль — всего лишь один клик.

Taranfx 22 фев. 2013, в 10:39
Поделиться

взгляните на проект codenameone.com, это платформа для кросс-платформенной мобильной связи, где часть ui является вилкой LWUIT. Этот проект использует xmlvm для перевода кода Java-байта в Objective C

Chen 27 март 2012, в 10:14
Поделиться

Вы также можете взглянуть на RoboVM.

Он переводит байт-код Java в собственный ARM-код или код x86, который может запускаться непосредственно на процессоре без необходимости использования VM или интерпретатора. Большинство элементов пользовательского интерфейса Obj-C уже подключены к Java и следуют обычным шаблонам проектирования Java.

Edit Robo VM недавно объявила, что это приведет к отключению службы — Источник

A Null Pointer 21 сен. 2013, в 20:10
Поделиться
RoboVM недавно достиг версии 1.0
Christopher Fraser 30 март 2015, в 13:34

попробуйте использовать TotalCross. Это Java Framework, чтобы помочь разработчикам создавать приложения для iOS и Android только с одним исходным кодом. В отличие от других платформ, он не требует каких-либо знаний в iOS (Objective-C или Swift), ни Android (SDK или NDK)

Bruno Muniz 03 май 2017, в 15:05
Поделиться
Просто один вопрос этот с 2010 года .
Brendan 05 май 2017, в 19:58

Я думаю, что Google Open Sources Java To Objective-C Переводчик сделает возможным развитие в Java для iOS https://code.google.com/p/j2objc/

smikesh 25 сен. 2012, в 14:34
Поделиться

Я отвечаю на этот вопрос через 2 года, и я должен стресс, что у меня была такая же проблема, как и у вас. Однако я так счастлив, что Android превратился в то, чем он является сегодня.

Сказав, что, я сожалею о том, что не изучал C/С++, пока мог, и я не хочу обвинять своих учителей в этом cos, где был мой мозг, когда настало время?

Сегодня я погружен в Java, и я рад, что не ошибся в изучении слишком большого количества языков и менее продуктивен. Однако Я изучил HTML5, которые действительно упростили работу, возможно, когда-нибудь, я мог бы получить мотивацию, чтобы изучить C/С++. Или, если я получу Apple Mac по реальной цене выброса, я мог бы узнать Objective-C:)

technoSesh 21 май 2012, в 16:45
Поделиться
Я бы сказал, 1 год, чтобы освоить Java, 3 года, чтобы освоить C ++, и 3 месяца, чтобы освоить HTML5
Jonathan 18 дек. 2018, в 09:45

Если вы планируете интегрировать функциональность приложения с веб-сайтом, я настоятельно рекомендую модель GWT + PhoneGap:

Вот мои два цента из моего собственного опыта: мы используем одни и те же Java POJO для нашей базы данных Hibernate, нашего REST API, нашего веб-сайта и нашего iPhone-приложения. Рабочий процесс прост и красив:

База данных — 1 — > API REST — 2 — > Приложение iPhone/веб-сайт

  • 1: Hibernate
  • 2: Сериализация GSON и GWT JSON Десериализация

Есть и другое преимущество этого подхода: любой Java-код, который можно скомпилировать с помощью GWT, и любая библиотека JavaScript станут доступны для использования в вашем приложении iPhone.

Naijaba 26 март 2012, в 11:07
Поделиться

Определенно, любой, кто начинает с Java, должен стремиться писать внешние интерфейсы HTML5, которые работают с настольными и мобильными браузерами и которые могут использовать Apache Cordova (разрыв телефона), чтобы встраиваться в нативные приложения на всех возможных телефонах и планшетах. Используйте jquery mobile в качестве скина и jquery для Ajax, а затем на веб-сервере Java опробуйте несколько технологий, чтобы понять, какие из них просты (например, Spring Boot высокопроизводителен, современен, но хорош для использования в качестве связующего звена (возможно, унаследованного) предприятие Java). Для бонусных марок используйте веб-розетки, а не Ajax, которые будут волновать потенциальных работодателей).

Читайте также:
Adobe flash player как установить программу

simbo1905 10 нояб. 2015, в 08:16

Обратите внимание, что Monotouch позволяет вам разрабатывать в С# вместо Objective-C. http://monotouch.net/

Thorbjørn Ravn Andersen 12 янв. 2010, в 19:11
Поделиться
Стоит отметить, что (сейчас) Monotouch это xamarin.com/ios?gclid=CKu1juOp77UCFUbMtAodUnIAYg
Andiih 09 март 2013, в 09:32

Вам нужно знать, по крайней мере, основы Objective-C для разработки для iPhone. Тем не менее, можно использовать классы С++.

Насколько я знаю, Adobe работает над созданием приложений Flex/Flash для iPhone. Подробнее здесь: http://theflashblog.com/?p=1513

Jacek 12 янв. 2010, в 19:03
Поделиться
И еще больше о технологии: adobe.com/devnet/logged_in/abansod_iphone.html
Jacek 12 янв.

2010, в 17:39
Почему за это проголосовали?
Amir Afghani 12 янв. 2010, в 17:44

Основанная на Java и HTML5 платформа для разработки Oracle ADF Mobile позволяет разработчикам создавать и расширять предприятия приложения для iOS и Android с единой базы кода. Основываясь на гибридная мобильная архитектура, ADF Mobile поддерживает доступ к услуги устройств, позволяет автономные приложения и защищает предприятия инвестиции от будущих технологических сдвигов.

Slartibartfast 14 авг. 2013, в 22:51
Поделиться

Возможно, вам стоит рассмотреть приложения для Android вместо приложений iPhone, если вы действительно хотите разрабатывать Java для смартфонов. Android изначально использует Java для своих приложений; возможно, это может быть лучшим вариантом?

Что касается iPhone, я бы рекомендовал вам изучить Obj-C или C/С++ в зависимости от типа приложений, которые вы хотите создать. Должно быть забавно баловать себя новым языком!:)

Charles 23 фев. 2010, в 10:59
Поделиться

Вы можете попробовать iSpectrum (получить его на http://www.flexycore.com) Вы сможете разрабатывать и отлаживать свои Java-приложения в Eclipse. Вам все равно понадобится Mac и XCode, чтобы запустить его на симуляторе или установить на реальном устройстве. Но вам не нужно будет использовать редактор XCode. Кроме того, вы можете использовать его бесплатно, если планируете работать над проектом с открытым исходным кодом.

Krusty 23 фев. 2010, в 10:46
Поделиться

В частности, речь идет о приложениях на базе Java, которые переносятся на iPhone с использованием аппаратного обеспечения, отличного от Apple.

Вы также можете проверить MonoTouch (С#, а не Java. но эти два очень похожи).

Justin Niessner 12 янв. 2010, в 18:34
Поделиться
Помогло бы, но у нас есть только Java-компилятор в моей школе, хотя я знаю C # .
Brendan 12 янв. 2010, в 17:41

Даже если в вопросе говорится о Java, большинство ответов отступили. Поэтому я думал, что сделаю то же самое:)

Русские Блоги

Со времени использования Objective C для разработки нативных приложений для iOS появилось много альтернатив для разработки приложений для iOS на других языках. Например, некоторые из них перечислены ниже:

[*] [url = http: //www.phonegap.com/] PhoneGap [/ url], используйте HTML / JS для разработки
[*] [url = http: //www.rubymotion.com/] RubyMotion [/ url], используя Ruby
[*] [url = http: //ionicframework.com/] ionic [/ url], разработанный с помощью AngularJS

Недавно я обнаружил RoboVM, с помощью которого вы можете разрабатывать программы для iOS на Java. Эта статья расскажет, как использовать RoboVM и Java для разработки простого приложения.

Вот некоторые предварительные приготовления:

[*] OSX 10.9.3
[*] JDK 1.7
[*] Eclipse Kepler 4.3
[*] Xcode 5.1.1

Во-первых, установите плагин RoboVM для eclipse, в разделе help-install новое программное обеспечение, http://download.robovm.org/eclipse/. Это требует перезапуска IDE.

После установки плагина вы можете создать новый проект. Выберите опцию «RoboVM iOS Project».

Имя проекта, основной класс, имя приложения и идентификатор приложения заполнены HelloWorld. Как показано на скриншоте ниже.

По какой-то причине, когда я использовал мастер, основной класс не был сгенерирован успешно, поэтому мне пришлось делать это вручную. Итак, создайте класс HelloWorld.

Вставьте следующий контент в класс HelloWorld.

Здесь мы унаследовали класс UIApplicationDelegateAdapter, который является версией UIApplicationDelegate для RoboVM. В классе есть метод main, который используется для запуска приложения.

Теперь нам нужно переписать метод didFinishLaunching для генерации UIWindow и UILabel. Просто поместите следующий код в метод.

Большая часть кода выше не требует пояснений. Конструктивными параметрами CGRect являются координаты x, y, а также длина и ширина метки.

Если вы щелкнете правой кнопкой мыши по проекту и выберете запуск приложения-симулятора iOS. Вы увидите всплывающее окно симулятора iOS с зеленым экраном и текстом «Hello World». Как на скриншоте ниже.

Если вы дойдете до этого шага, это означает, что ваша среда настроена, и вы можете начать использовать Java для разработки программ для iOS.

Читайте также:
Программа которая войдет в bios

Вот несколько ссылок. Надеюсь, эта статья поможет вам использовать Java для разработки под iOS.

Источник: russianblogs.com

Опыт использования Intel Multi-OS Engine для разработки iOS-приложения на Java

В августе на Intel Developer Forum в Сан-Франциско мы представили нативное мобильное приложение для iPаd для мониторинга пациентов, разработанное с помощью платформы Intel Multi-OS Engine. Приложение предоставляет данные о наиболее важных параметрах состояния пациента, подключаясь к прикроватным мониторам по WiFi-сети (более подробно о самом приложении и его функционале можно почитать на нашем сайте).
В данной статье мы поделимся опытом использования платформы Intel Multi-OS Engine, которая позволяет разрабатывать нативные приложения для iOS на Java.

В том случае, когда требуется разработать приложения как для Android, так и для iOS, возможность использовать Java для разработки приложений для iOS позволяет экономить время и ресурсы на разработку.

Основные преимущества работы с Intel Multi-OS Engine

UIElements

Основываясь на опыте, можно сказать, что основное положительное свойство платформы Multi OS-Engine — это возможность работать с нативными iOS UI элементами, практически так же, как в XCode. Все элементы, необходимые для разработки приложения, уже имелись в платформе, и, соответственно, не потребовалось добавлять что-то дополнительно. Каждый элемент полностью описан: присутствуют все характеристики и методы, что упрощает работу с платформой разработчикам, имеющим опыт работы с iOS.
Правильная организация приложения
В связи с тем, что данная платформа в дальнейшем позволит разрабатывать приложения сразу для Android и iOS, необходимо очень аккуратно подходить к разработке архитектуры приложения, правильно разделять общие и UI specific функциональности. Это позволяет строить очень точные и легкие приложения и организовывает разработчика.

Возможности Java

Преимуществом данной платформы является то, что она позволяет реализовать большинство возможностей Java. Например, рассмотрим работу с потоками и файлами:

Thread thread = new Thread() < public void run() < >>; thread.start(); private void openFileToRead() < String fileId = «hb»; NSBundle mainBundle = NSBundle.mainBundle(); String pathToFile = mainBundle.pathForResourceOfType(fileId, «dat»); File file = new File(pathToFile); FileInputStream fis = null; try < fis = new FileInputStream(file); DataInputStream dis = new DataInputStream(fis); //что-то делаем с input stream >catch (IOException e) < e.printStackTrace(); >>

В процессе работы мы проводили дополнительные исследования по работе с сетью и выяснили, что отлично работает фреймворк Retrofit в связке с okHttp.

Удобно и быстро пишем iOS специфичную часть на Java

Дополнительно можно использовать ObjC-подход для запуска в бэкграунде. В нашем случае при старте приложения мы запускали процесс чтения файлов:

Запуск отдельных функций в главном потоке тоже не является проблемой:

Доступ к ресурсам аналогичен с iOS API: чтобы получить изображение «alarm_on.png» из ресурсов и назначить его кнопке, достаточно выполнить следующее:

UIImage image = UIImage.imageNamed(«alarm_on»); mAlarmButton.setImageForState(image, UIControlState.Normal);

Очень удобно, что синтаксис работы с iOS API на Java практически не отличается от оригинала на ObjC. К примеру, меню, основанное на UITableViewController, добавляли таким образом:

Multi-OS Engine Plugin для Android Studio

Серьезным преимуществом платформы от Intel является «глубина» интеграции плагина Multi-OS Engine в Android Studio. Можно практически всю разработку проводить в Android Studio. При этом можно с легкостью настроить проект на работу сразу с двумя платформами. Для этого достаточно настроить конфигурации для запуска Android- и iOS-версии и переключаться между ними, просто выбрав нужную:

Подключение графиков

Для реализации отображения «бегущих» графиков были использованы наработки по работе с OpenGL, написанные на C. Для их использования был написан UIWaveFormVC контроллер на ObjC, где уже был добавлен C-код. Данный контроллер по входным данным отрисовывает на OpenGL View соответствующие точки с заданной скоростью и цветом.

Далее для использования данного класса внутри Multi OS-Engine нам необходимо сгенерировать для него «обертку», то есть осуществить биндинг Java к ObjC:

Далее мы просто добавляем UIWaveFormVC в логику экранов в MainUI.storyboard.

Затем вся работа проводится уже непосредственно из Java. Для передачи данных нашему UIWaveFormVC мы объявляем метод prepareForSequeSender(), который позволяет получить экземпляр класса контроллера до его отображения и передать ему данные.

Рекомендации по улучшению Intel Multi-OS Engine

• В связи с отсутствием поддержки ODBC драйвера для базы данных проблематично сделать одну унифицированную базу сразу для Android и iOS версии.
• Для поддержки https на iOS требуется приложить некоторые усилия: необходимо вручную добавлять сертификаты от Android сборки.
• При использования сторонних библиотек иногда требуется вносить изменения в настройки proguard, но возможность сделать это стандартным способом через Gradle отсутствует. В результате приходится добавлять нужные флаги вручную.
Сделать это можно в файле proguard.cfg, который находится в /Applications/Intel/INDE/multi_os_engine/tools. Флаги следует просто добавить в конец файла. В нашем случае мы добавили следующие флаги, чтобы использовать Retrofit:

• Отсутствует возможность редактировать storyboard непосредственно в Android Studio, приходилось верстать интерфейс в XCode.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru