Спасибо за статью, тема интересная и нужная. Не подскажите, есть ли там возможность проиграть одновременно два коротких mp3 файла в идеальной синхронизации? Чтобы звучало так, будто я взял два PCM потока и смешал их руками в один. Есть ли механизмы для этого в OpenSL ES? SoundPool, например, иногда выдает ощутимую задержку.
Спасибо, очень красивые скриншоты. Даже несмотря на то, что не имею прямого отношения к геймдеву было очень интересно почитать, как же такая красота делается. У меня вопрос, скорее всего глупый, но все же. Все перечисленное в статье работает под DirectX? И насколько это все, скажем так, урежется или изменится при портировании на OpenGL ES, используемый в Android?
Почитал комментарии. «Налицо усложненный микро-цикл», «налицо проблемы». Я использовал эту либу в проекте с более-менее развесистой структурой БД и провайдером. Налицо то, что я потратил 20 минут на то, чтобы описать интерфейсы с аннотациями и после этого получил готовую схему, готовый провайдер с кучей рутины и дополнительных плюшек. И все это получил сразу. Писать руками такой провайдер заняло бы пару часов, а тут он вот, готовый.
С обновлениями проблем особых также не возникало. В процессе разработки вы делаете готовую базу. Потом, когда приложение в продакшне, вы точно так же обновляете описание, и добавляете обновление в onUpdate. При этом, провайдер «пофиксится сам». По сути эта библиотека облегчает Вам процесс создания БД и провайдера. В остальном- полная свобода. Процесс ее обновления остается таким же, как и без нее. Но это не проблема.
И при чем тут ORMLite? Цель этой библиотеки — ускорить и облегчить процесс создания базы, а не навернуть на нее так любимый начинающими «ОРМ это же круто, у нас объекты, а не курсор».
Мда, на что только люди не идут, чтобы не написать пару лишних строчек кода.
А вообще, реклама, это конечно хорошо, но хотелось бы, чтобы статья объясняла, что же на самом деле происходит under the hood. Ну вот, например, @Background. Каким образом он реализуется? Каким образом вызывает UIThread? Будет ли он вызываться после пересоздания activity? А так всё весьма поверхностно.
Люди не хотят учить ничего нового, хотят навязывать свои привычки в чужие платформы. Пофиг, что там гугл на джаве под андроид написал, мы все уберем и напишем с нуля на питоне. И становится маркет полон такоого…
Ох, не знаю… мне все это кажется ужасным… когда со своими языками лезут в какую-то существующую платформу, городят какие-то промежуточные слои, чтобы это завелось… зачем все это, зачем?
К сожалению, это очень часто происходит. Дизайнеры присылают дизайн сделанный согласно их видению, а их скудное видение чаще всего ограничено iOS и попытки выйти за рамки рвет им шаблон. И приходится писать айфон УИ под андродид. Самое интересно, что это бесит не только разработчиков, но и пользователей, но всем как всегда.
Отличная статья. Спасибо. Действительно, приходилось вести пару семестров у студентов практику по программированию, и был очень удивлен, насколько амбициозны многие из них, при том, что нихрена не знают. И чем больше «понтов», тем, зачатую, скромнее результаты при проверке. Совершенно верно сказано, чтобы чего-то добиться, надо начать с малого и трудиться, зарабатывать доверие, репутацию, опыт… Сам в компанию, где работаю, приходил практикантом, а теперь много лет прошло, бывает, и собеседую кандидатов, вот таких студентов часто на собеседованиях встречаешь.
Видимо где-то в мануалах есть описание побочных эффектов linux, типа «чрезмерно раздувает ЧСВ, дает ложное чувство превосходства над окружающими, наряду с желанием как можно чаще это демонстрировать»
80к активных пользователей. Я думал, мы об активных пользователях тут говорим. 80к активных пользователей, к сожалению != 80к просмотров в день. Для 100000 юзеров в день, подозреваю, это число должно быть гораздо выше.
С обновлениями проблем особых также не возникало. В процессе разработки вы делаете готовую базу. Потом, когда приложение в продакшне, вы точно так же обновляете описание, и добавляете обновление в onUpdate. При этом, провайдер «пофиксится сам». По сути эта библиотека облегчает Вам процесс создания БД и провайдера. В остальном- полная свобода. Процесс ее обновления остается таким же, как и без нее. Но это не проблема.
И при чем тут ORMLite? Цель этой библиотеки — ускорить и облегчить процесс создания базы, а не навернуть на нее так любимый начинающими «ОРМ это же круто, у нас объекты, а не курсор».
А вообще, реклама, это конечно хорошо, но хотелось бы, чтобы статья объясняла, что же на самом деле происходит under the hood. Ну вот, например, @Background. Каким образом он реализуется? Каким образом вызывает UIThread? Будет ли он вызываться после пересоздания activity? А так всё весьма поверхностно.