Евгений Корначев ТС планирует переходить на Android, а там официально поддерживается только сборка через Gradle. Потому, собственно, и собирается сам переходить.
Rou1997 можете не отвечать, и так уже понятно, что вы обыкновенный балабол, из тех, кто на вопрос: "А как мне сделать хитрый фильтр массива на C?" отвечают: "Используй цикл for, но вообще это костыль, так как в Haskell я могу однострочник написать с лямбдами и всё заработает". Какой смысл упоминать Haskell в вопросе про C топик-стартер не поймёт, зато балабол доволен: он всем показал, что он очень крут и у него широкий кругозор. Как только балабола ловят на незнании каких-то фактов, он начинает сливаться: "Ну да, это фреймворк, но я знаю Настоящие Фреймворки ™; ну да, вопрос был про Java/Android/whatever, но этот вопрос показывает вашу ограниченность и нежелание учиться".
Когда будете расширять специализацию в следующий раз, почитайте про SOLID, а конкретно - про SRP, чтобы и самому на Настоящих Фреймворках ™ не говнокодить, и других говнокоду не учить. Да-да, кастомный View, который умеет и аудио воспроизводить и фото/видео показывать - это аццкий говнокод.
Rou1997 странный вы какой-то, написали ответ, а как только по нему вам начали задавать вопросы - сразу же дали заднюю: "Я крутой, я видел настоящие фреймворки, но вам о них не расскажу, и не лезьте ко мне". С таким подходом можно вообще в Интернет не заходить - а то вдруг спросят чего-то. Впрочем, это ваше дело.
>> Android API - это низкоуровневое API ОС, такое, как WinAPI, а не фреймворк.
Фреймворк - это каркас для написания приложения. Фреймворк отличается от библиотеки тем, что в случае с библиотекой вы можете использовать какое-то произвольное её подмножество, в каждом случае разное, в случае же с фреймворком вы получаете некий каркас, который нужно расширять и за пределы которого невозможно выйти. Если вы хотите пользовательский интерфейс, вам придётся работать с Activity, если вы хотите запустить какую-то долгосрочную задачу, не взаимодействующую с UI - вам придётся использовать Service, если вы хотите предоставлять другим приложениям доступ к данным вашего приложения - нужно использовать Content Provider. Даже само наличие жизненного цикла стандартных компонентов говорит о том, что Android SDK - это фреймворк, а не "низкоуровневое API".
Можно также обратиться к документации от Гугла (developer.android.com/guide/index.html), чтобы понять, чем они считают свой SDK. Первое же предложение: "Android provides a rich application framework that allows you to build innovative apps and games for mobile devices in a Java language environment".
>> Во-вторых, а вы не допускаете, что стандартные средства тоже могут быть уродливыми?
Да, стандартные средства могут быть уродливыми, я это вполне допускаю. Но я в упор не вижу, почему findViewById() является костылём. Есть иерархия виджетов, есть метод поиска виджета в этой иерархии. Какую проблему этот метод решает неочевидным обходным путём? И как можно было бы сделать лучше?
>> Точнее, в данном случае проблема даже не в API ОС. Она - в стандартных IDE.
В каких IDE? Назовите мне ещё хотя бы одну стандартную IDE для Android кроме Android Studio (Eclipse с плагином не в счёт, ибо deprecated). И каким образом поиск виджета в иерархии виджетов связан с IDE, более того, является её проблемой?
"костыль" - быстрое, уродливое решение проблемы. Каким образом использование стандартных средств фреймворка по поиску виджета в иерархии виджетов является костылём? Да, есть Butterknife, но он внутри себя использует точно тот же самый findViewById().
Рейтинг автора на stackoverflow (stackoverflow.com/users/115145/commonsware) как бы намекает, что он не лаптем щи хлебает, а регулярное попадание его статей в еженедельный дайджест Android Weekly (androidweekly.net/) ещё более укрепляет предположение о том, что чувак в теме Андроида разбирается. Но хочется не догадываться по второстепенным признакам вроде рейтинга на stackoverflow и слова "coder" в заголовке, а услышать мнение тех, кто книгу уже читал.
Ну наверное ТС имел в виду, что если вы какое-то время работали втёмную, а потом решили зарегистрироваться как ИП, и начать работать в белую, то тут-то налоговая и начнёт проверять все старые непонятные переводы денег. Я лично как ИП пока что не зарегистрировался, поэтому как проверка налоговой выглядит не знаю, но видел на Тостере упоминание описанного мной варианта закошмаривания налоговиками.
Я когда начинал её читать пару лет назад, сразу решил писать всё в Android Studio, не смотря на то, что они на Eclipse все примеры базировали, так что это не большая проблема - можно при желании и без Eclipse обойтись. А вообще спасибо за комментарий, полистаю второи издание, может что-то новое найду. :)
Robert: ну, на самом деле не так уж и важно, на какую должность я собеседовался, эту информацию я в принципе мог бы и опустить. Важнее было понять, в каких задачах мне может выйти боком незнание стандартных механизмов, и как часто эти задачи всплывают, без абстрактного: "Ну, сторонних библиотек и Android SDK может не хватить, поэтому нужно учить".
"Задача предпринимателя - получать макимальную прибыль" - и не присесть при этом на пару лет за уклонение от уплаты налогов. А так же не потерять всю полученную прибыль на штрафах.
Вот теперь можно и подумать самому.
Рекомендовать-то рекомендуют, но свои приложения они довольно ретиво переписывают под Material Design, не взирая на то, что старые устройства пользуются по умолчанию темой Holo.
В моем случае он пишет: "This postal code does not appear to match the rest of this address." Я уже всеми возможными способами вписывал the rest of this address, но пока что безрезультатно.
Ага, помню была какая-то книга на тему запоминания английских слов. Не помню, где на нее наткнулся, смысл был ее в том, что на каждое слово подбиралась яркая фраза, содержащая в себе это слово. Например: «Страусов на зиму нужно остричь» (ostrich — по английски значит «страус»). Это единственная фраза, на которую я тогда (года три-четыре назад) взглянул (книгу по какой-то причине решил не читать), но запомнил я ее похоже навсегда. :)
Гм. Про GIL-то я знал, я просто надеялся, что парни из PySide нашли способ обойтись без него.
Окей, попробую на multiprocessing переписать. Спасибо за объяснение. :)