- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
коммит на гитхабе:
https://github.com/nativescript-vue/nativescript-vue.org/commit/f964457a5e4944864485c7194b0b5d850f8edb67
русская документация:
https://nativescript-vue.org/ru/docs/routing/manual-routing/#navigateto
английская документация:
https://nativescript-vue.org/en/docs/routing/manual-routing/#passing-props-to-the-modal
угадайте, какой вариант передачи пропсов рабочий ?
ключевые слова тут "быстро" и "сразу".
> Расскажи на чём быстро делать приложения сразу под гейфон и ведро?
Нативные приложения разрабатываются с оглядкой на аппаратное обеспечение, общепринятые практики в UI и UX выбранной платформы. "Кроссплатформенный" UI - это компромисс, который убог на всех платформах
> ключевые слова тут "быстро" и "сразу"
Я слышал, что приложения разрабатывают для клиентов, которые будут их использовать, а не для программистов, которые их напишут. "Быстро" и "сразу" - принципы говнопроектов на фрилансе/говностартапов, которые по дефолту мало кому интересны. Поделки на электроне и иже с ними, которые по какому-то недоразумению стали популярны - приносят боль и пользователям, и программистам.
А по теме - мой клиентский js по умолчанию отключен на любых мобильных платформах, поэтому не знаю. Flutter, React Native, Nativescript - разрабатывай на чем хочешь, ничего против не имею.
My point - твои проблемы при разработке - лишь слабая моральная компенсация проблем будущих пользователей и разработчиков, которые это говно должны будут поддерживать.
На C#
>"быстро"
У них фреймворк так и называется - "QtQuick"
Зашёл на https://www.nativescript.org/
сразу на пороге меня встретила такая картинка:
https://d2odgkulk9w7if.cloudfront.net/images/default-source/home/header-graphic-hp-min.png
Из картинки следует, что на Андроиде они используют V8, а на iOS — JavaScriptCore. То есть эта штука по сути не отличается от сайта в веб-браузере?
А что если JavaScript для меня явлется new language? Или по мнению авторов этого говна, жабаскрипт обязаны знать вообще все программисты?
Нативный джаваскрипт позволит хоть както стандартизировать эти джунгли
А язык там официальный уже Kotlin, но можно писать на java.
Во-вторых React Native (от FB) позволяет делать кросс-платформенные приложения на JS.
Это мерзко конечно, но писать на java/kotlin один раз, а потом тоже самое на swift/objc это еще хуже.
Можа взять Xamarin и писать всё на C#, это лучше
"Java" может существовать не только на "Sun JVM" (ты ведь её имел в виду?), но и на других виртуальных машинах, а также вообще кокококонпелироваться в нативный кококод (gcj, например).
2. "Кококококотлин" анонсировали в качестве официального языка для "Андроида" не так давно (в 2017 году).
>> Можа взять Xamarin и писать всё на C#, это лучше
Это лучше богомерзкого JS.
Ещё, вероятно, можно перейти на Haxep.
Это был ответ на "В андроидных телефонах вообще-то Java".
>>"Java" может существовать не только на "Sun JVM" (ты ведь её имел в виду?),
Нет, я имел ввиду что ART это не Java. Я постоянно слышу как ART называют джавой и у меня от этого глаз дергается.
На андроиде джавы нет. Ни компилятора, ни виртуальной машины.
Есть транслятор .class файлов в код под ART. И он запускается на машине разработчика.
>> не так давно (в 2017 году).
да.
>>Это лучше богомерзкого JS.
Безусловно. C# вообще няшный. А уж по сравнению с JS-то.
Вообще я не знаю какие могут быть причины для писания на JS кроме незнания никакого другого языка.
>>Haxep
Вообще говоря мобильные разработки они почти как веб, такие же малоприятные.
Так что про хер ты прав.
Но вот Haxe я не пробовал, надо позырять
Вербозненький конечно, но зато со стат тупизацией и нормальным синтаксисом укакаказания типа
Что мешает её туда поставить?
З.Ы. Кстати, а как они переименовали JNI чтобы в нём не было упоминаний о джаве?
https://developer.android.com/ndk/guides/
Вопрос в том, можно ли приложить бинарь в APK и запустить его из "джавы".
Собрать его само собой можно, я так себе sudo конпелял чтобы непонятные руткиты не ставить.
https://github.com/jackpal/Android-Terminal-Emulator
У этой программы есть модуль для JNI, который делает fork и execv:
https://github.com/jackpal/Android-Terminal-Emulator/blob/master/libtermexec/src/main/jni/process.cpp
Программа может насрать на карту памяти и запустить процесс с неё.
Сёма меня каждый день скрывает, но только почему-то всё равно видит.
Есть даже программы, которые помогают использовать флешки, отформатированные в ext2 (Link2SD, FolderMount).
1. Приложение отображает текстовое поле.
2. К принятой от пользователя текстовой строке приклеивает заголовок, чтобы получился elf-файл.
3. Сохраняет полученный файл в /data/local/tmp и устанавливает атрибут «исполнимый».
4. Через JNI вызывает execv.
Тогда на «Андроиде» можно будет развлекаться написанием нативного кода в ASCII.
> приклеивает заголовок, чтобы получился elf-файл.
А зачем? Почему бы просто не написать goto *(void*)string или ((void(*)())string)()?
https://play.google.com/store/apps/details?id=com.esminis.server.php
Именно поэтому я за «PHP».
Этот же автор собрал «MariaDB» (форк «MySQL»), «Redis», «Apache».
Список ненужных вещей
Можно без рута через рекавери, если у тебя есть ключ разработчика для подписывания файла update.zip (фантастическое условие). Можно и без подписи, если у клиента не нормальное меню рекавери, а CWM/TWRP, в котором можно выключить проверку подписи.
Зачем это нужно делать?
Или ты критикуешь рахитинктуру Андроида? На это тоже есть причины: если бы нативные экзешники ставились в один клик, вирусов было бы как на Винде.
у меня вот вротутере тоже бизябокс, там у ps два ключа примерно, и ничо. Как-то живу
В принципе, почти всё настраивается через веб-морду. Просто было интересно очередной бизябокс полапать.
Погуглил — у всех такая же проблема. В старой прошивке телнет работал, в новой паршивке телнет сломали.
>> Есть транслятор .class файлов в код под ART.
Пожалуй, придётся согласиться. На Андроиде есть какая-то своя хрень с классами и с библиотекой, а из какого языка кококонпелировать (из Java, из Кокококотлина или ещё из какого-нибудь) — это забота разработчика.
ART и доживающая свой век машина Dalvik — регистровые, а Sun JVM — стековая (как и CLR, кстати). То есть даже рахитинктура несовместимая.
Можно было бы сказать, что и на J2ME никакококой Java нет (на телефоне коконпеляторов не было, а у разработчиков кроме javac ещё были MIDlet Pascal, Canterbury Modula-2 и прочие кококонпеляторы с других языков), но не получается, потому что J2ME частично совместима с J2SE. Так?
>> Вообще я не знаю какие могут быть причины для писания на JS кроме незнания никакого другого языка.
Отсутствие кококонпеляции. Именно поэтому я за "PHP".
А ещё куча говна в "npm". Помнишь, как дельфятники вместо того, чтобы писать кококод, гуглили готовые кокококомпоненты?
Вроде бы там были профили (profiles), и таки да: местами соместимы
Для мобилок MIDlet
Для браузера Applet
Для бекенда Servlet
Жаль, что ипохуй J2ME ушла безвозвратно 10 лет назад.
>>Отсутствие кококонпеляции
как что-то хорошее
>>Помнишь, как дельфятники
анекдот_про_пустыню_и_льва.txt? Конечно помню:)
А еще я помню как офигел когда узнал про CPAN, и был поражен тем что перловики не пишут с нуля хуйню и не гуглят нужную либу, а тупо берут ее из предтечи npm -- системы CPAN
Полез читать документацию по NDK. Встретил там упоминание JNI:
https://developer.android.com/training/articles/perf-jni
Как же так, Марьиванна, жопа есть, а слова нет?
> На андроиде джавы нет. Ни компилятора, ни виртуальной машины.
Речь вроде идет про язык программирования, а не про то, через какую жопу оно там выполняется на конечном устройстве. Вот есть например emscripten - там сишку и плюсы можно компилировать в жабаскрипт и запускать эту хуйню потом в браузере. Хочешь сказать, что если я пишу код на Си и потом компилирую его в жабаскрипт, то это не Си?
Или вот если взять какой-нибудь дохлый 8-битный микроконтроллер - в него например не выйдет запихнуть некоторую фигню, которая в стандарте Си описана (типа каких-нибудь https://en.cppreference.com/w/c/thread ) - так что теперь, это уже не Си? А если я на контроллере реализовал интерпретатор брейнфака, и реализовал компилятор из Си в брейнфак и потом в микроконтроллер с интерпретатором брейнфака заливаю откомпилированную из Си в брейнфак хуйню, то это не Си?
Языка программирования там тоже такого нет.
Ты пишешь на любом языке который компилируется под JVM, а оттуда он компилируется в код под ART.
Стандартным языком является Kotlin, но ничто не мешает тебе написать компилятор OCaml под JVM и оттуда в ART, и сказать что на андроиде у тебя OCaml.
>>Хочешь сказать, что если я пишу код на Си и потом компилирую его в жабаскрипт, то это не Си?
Си, но никто же не говорит что в браузере у тебя си, верно?
Но ведь и под HotSpot JVM (JVM расшифровывается как Java Virtual Machine) можно не на Java писать. Так что ж тогда получается, в официальной и основной JVM от оракла тоже нет никакой джавы? А где она вообще есть?
Кстати, меня ведь и в процессоре никакого Си нет, в процессоре только машинный код исполняется.
Куплю лисп-машины CONS или CADR дорого в любом состоянии.
Телефон: зарегестрируйтесь чтобы просмотреть контакты
Можно получить код под ART, минуя байткод JVM?
https://en.wikipedia.org/wiki/Android_Runtime
> Android Runtime (ART) is an application runtime environment used by the Android operating system. Replacing Dalvik, the process virtual machine originally used by Android, ART performs the translation of the application's bytecode into native instructions that are later executed by the device's runtime environment
> Unlike Dalvik, ART introduces the use of ahead-of-time (AOT) compilation by compiling entire applications into native machine code upon their installation.
Ну если транслируется в native instruction, то естественно можно. Например на ассемблере каком-нибудь.
> At install time, ART compiles apps using the on-device dex2oat tool. This utility accepts DEX files as input and generates a compiled app executable for the target device. The utility should be able to compile all valid DEX files without difficulty. However, some post-processing tools produce invalid files that may be tolerated by Dalvik but cannot be compiled by ART. For more information, see Addressing Garbage Collection Issues.
трансляция в машинный код происходит на этапе установки в андроид, а не на этапе сборки APK. Выходит, все же надо чтоб был DEX bytecode. Ну на нем тоже можно программировать и компилировать в него, минуя байт-код Java
https://xakep.ru/2014/07/03/art-vm/ еще вот
Стандартный способ получения dex-файла — кросскомпиляция байткода JVM посредством утилиты dx.jar, хотя гипотетически не исключены и другие способы.
Кстати, существует программа dex2jar для проворачивания фарша назад и восстанавливания мяса из котлет.
А ещё посмотрим официальные™ примеры исходных текстов приложений Андроида:
https://developer.android.com/samples/
Немножко на Кокококотлине, остальные на Java. Ну ещё совсем немножко на C++, написанных с использованием... JNI NDK.
https://github.com/dot42/dot42
Не из кода C# а из дотнетовского байткода Common Intermediate Language (CIL, ранее назывался Microsoft Intermediate Language - MSIL):
https://habr.com/post/168689/
> Признаюсь, я немного слукавил, сказав, что компилятор dot42 «убирает» IL-код. Это не совсем так. Вместо этого он читает IL-код и конвертирует его в новый язык Register Language или, если короче, RL. Главная разница между IL и RL в том, что IL-код работает на стековой модели выполнения (как и байт-код у Java), а RL-код на регистровой, так же как Dalvik. После получения RL-кода, dot42 производит ряд оптимизаций и наступает этап финальной компиляции. Именно после последнего этапа и получается dex-код, язык среды Dalvik. В чем отличие RL от Dex написано в самом первом посте в блоге разработчиков.
А ещё какие-нибудь компиляторы в dex существуют?
изыди злой дух из ануса!