Действительно, с чего бы это. Вроде ничего не произошло, кроме признания языка гуглом и оффициальной поддержке как first-class citizen-а, начиная с Android Studio 3.0.
Не так страшен databinding (далее db) как его малюют, если никакую логику в XML не городить. Создать на каждый стандартный для вашего приложения кусок UI по вью и по модели, привязанной через db. Далее в xml фрагмента (или активити) как в конструкторе накидываем созданные вью и фрагмент байндим на ViewLogic класс. В классе фрагмента (или активити) только инициализируем наш VL класс (еще лучше — инжектим Dagger-ом). А во VL выполняем всю логику и настраиваем/меняем модели наших «кусков» как душе угодно. При разработке достаточно большого приложения получаем весьма удобный инструментарий, легко масштабируемый и очень легко покрываемый юнит тестами. (P.S. ButterKnife хорош, его использовали до того, как перешли на db)
Явно что-то делается не так, раз в простом приложении активити тормозит на старте так, что это видно. Фрагменты использовать можно и нужно, но лепить все приложение в одной активити — явно другая крайность. Опять же, если хотите, чтобы у каждого фрагмента был свой идентификатор в стэке — используйте тэги (в качестве тэгов можно использовать статические переменные с понятным названием в каждом фрагменте: addToBackStack(YOUR_FRAGMENT_TAG))
N2. Запихивать все подряд в shared prefernces — не самая лучшая идея. Тяжело с SQLite, структура данных простая и объемы данных небольшие, либо нет большого количества связей таблиц? — попробуйте realm.
N5. По поводу кнопок — кнопки можно создавать и в XML и программно и как вашей душе угодно, а есть еще такая замечательная вещь как data binding… Если надо действительно менять фрагмент в той же активити по кнопке — реализуйте callback в активити. Если это принципиально новое нечто — создавайте интент под новое активити.
N6. Про картинки — если речь идет о добавлении как VectorDrawable, то можно используя third party конвертеры перевести все ваши SVG в XML и потом скопировать при закрытой AS в нужную папку (res\drawable).
Сам весьма «молодой» в мобильной разработке. Из личного опыта могу посоветовать послушать последние google IO, все, что касается технических выступлений + codelabs. Разобраться с архитектурой приложений — MVC и MVVM, и как они могут быть реализованы. Идеальное активити — пустое активити, выносите логику отдельные классы — это поможет и с тестированием и с масштабированием в дальнейшем. Ну и крайне рекомендую разобраться со всеми средствами профилирования и анализа производительности — посмотрите видео из серии performance patterns на официальном канале Google Developers в youtube, пройдите курс от гугла на Udacity — многое откроется по проблеме N3. Курсы из Nano degree на Udacity вообще очень неплохи для начинающих — они записаны самими гугловцами и доступны бесплатно, если вам не нужна красивая бумажка об окончании ND. Удачи!
Работаю в компании в Новой Зеландии, руки принято жать только при знакомстве, здороваются все на словах. Но если обращаешься к кому-то конкретно (или кто-то сидит в непосредственной близости) не спросить как дела — очень невежливо, пусть это и простая формальность. На ревью отзывы от коллег в целом были очень положительные (что в прочем не помешало менеджеру поставить невысокий средний балл на первом ревью, а потом exceed expectations на итоговом по результатам года). В плане отношения с коллегами и работы в целом вообще мало отличий от родного зеленого московского интегратора, разве что работаю чуть более расслабленно и меньше часов в неделю.
Есть история переезда без ВО в Новую Зеландию. Но несколько затратный — за год получил местный диплом (по факту специализация после бакалавриата, но вся штука в том, что 5+ лет опыта на "скилловой" позиции засчитывается за эквивалент бакалавриата на усмотрение ВУЗа). После диплома дается открытая рабочая виза на год. Нашел работу, подался на резиденство. Немного затратно (с дипломом все можно было бы сделать сильно проще), но в целом success — и поуехал, и диплом местный получил.
Возможно процесс наладили не через то место. Сейчас в компании используем Rally для скрама, все изменения мерджатся только после peer review (где в том числе проверяется полное покрытие unit тестами) в Stash и успешном билде на Дженкинсе. Время в задачах зло — оценивается толкьо примерная сложность на основе покера планирования, и на каждом «ретро» это дело пересматривается и тюнится. Менеджеров фактически не видно и не слышно — есть бизнес-лид (он же product owner), который выставляет приоритет задач и на этом руководящие функции как правило ограничиваются. В целом же качество и скорость разработки только увеличилась — все четко и слажено, каждый кусок кода оттестирован, все, что можно было автоматизировать — автоматизировано. Искренне рад, что не использется обычный «водопад». Собственно, один из пунктов Agile (и скрам в том числе) — сократить бюрократию и повысить скорость и гибкость разработки — что-то у вас определенно пошло не так (присоединяюсь к комментарию ниже об увольнении пары менеджеров).
На картинке «было — стало» вариант слева глазу гораздо приятнее (разве что горящий диод поярче сделать, да кнопки с иконками чуть по контрастней сделать). Гораздо более «целостная», теплая и ламповая рисовка слева IMHO лучше, чем псевдо-натуральные элементы поверх рисованного фона и блестящие псевдо-3d кнопки прямиком из начала нулевых. В общем, зря вы так самокритично о своей рисовке — развивайте навыки, будьте труЪ-инди!
N2. Запихивать все подряд в shared prefernces — не самая лучшая идея. Тяжело с SQLite, структура данных простая и объемы данных небольшие, либо нет большого количества связей таблиц? — попробуйте realm.
N5. По поводу кнопок — кнопки можно создавать и в XML и программно и как вашей душе угодно, а есть еще такая замечательная вещь как data binding… Если надо действительно менять фрагмент в той же активити по кнопке — реализуйте callback в активити. Если это принципиально новое нечто — создавайте интент под новое активити.
N6. Про картинки — если речь идет о добавлении как VectorDrawable, то можно используя third party конвертеры перевести все ваши SVG в XML и потом скопировать при закрытой AS в нужную папку (res\drawable).
Сам весьма «молодой» в мобильной разработке. Из личного опыта могу посоветовать послушать последние google IO, все, что касается технических выступлений + codelabs. Разобраться с архитектурой приложений — MVC и MVVM, и как они могут быть реализованы. Идеальное активити — пустое активити, выносите логику отдельные классы — это поможет и с тестированием и с масштабированием в дальнейшем. Ну и крайне рекомендую разобраться со всеми средствами профилирования и анализа производительности — посмотрите видео из серии performance patterns на официальном канале Google Developers в youtube, пройдите курс от гугла на Udacity — многое откроется по проблеме N3. Курсы из Nano degree на Udacity вообще очень неплохи для начинающих — они записаны самими гугловцами и доступны бесплатно, если вам не нужна красивая бумажка об окончании ND. Удачи!
Работаю в компании в Новой Зеландии, руки принято жать только при знакомстве, здороваются все на словах. Но если обращаешься к кому-то конкретно (или кто-то сидит в непосредственной близости) не спросить как дела — очень невежливо, пусть это и простая формальность. На ревью отзывы от коллег в целом были очень положительные (что в прочем не помешало менеджеру поставить невысокий средний балл на первом ревью, а потом exceed expectations на итоговом по результатам года). В плане отношения с коллегами и работы в целом вообще мало отличий от родного зеленого московского интегратора, разве что работаю чуть более расслабленно и меньше часов в неделю.
Есть история переезда без ВО в Новую Зеландию. Но несколько затратный — за год получил местный диплом (по факту специализация после бакалавриата, но вся штука в том, что 5+ лет опыта на "скилловой" позиции засчитывается за эквивалент бакалавриата на усмотрение ВУЗа). После диплома дается открытая рабочая виза на год. Нашел работу, подался на резиденство. Немного затратно (с дипломом все можно было бы сделать сильно проще), но в целом success — и поуехал, и диплом местный получил.