Size: a a a

2020 July 04

TB

Timur Borgalinov in Android KZ
нам важно понять сколько тестовых сделал человек перед трудоустройством
источник

TB

Timur Borgalinov in Android KZ
Askar Syzdykov
Ответил, последний вопрос кажется не покажет всей картины, т.к непонятно во сколько компаний я подавал резюме, возможно нужен ещё один вопрос
спасибо, добавим
источник

AS

Askar Syzdykov in Android KZ
Результатами поделитесь потом?
источник

TB

Timur Borgalinov in Android KZ
Askar Syzdykov
Результатами поделитесь потом?
если интересно конечно поделюсь
источник

AS

Askar Syzdykov in Android KZ
abyl
А так всем привет, меня зовут Абылайхан, я являюсь на данный момент студентом Astana IT University, занимаюсь Андроид разработкой пол года, сейчас взялся за один не серьезный проект(который сам себе в голове придумал).
Хотелось бы сравнить свои знания с опытными разработчиками, чего не хватает в моем приложении, если есть желающие оценить мой первый проект, https://gitlab.com/abikko/bookstore , правда я начал его разрабатывать до изучения принципов солида и дизайн паттернов, код не такой красивый, но в будущем это исправлю.
Проект:
1) .idea лучше в .gitignore добавить, эта папка не для хранения в гите
2) Попробуй перевести приложение на фрагменты вместо активити, т.к. Гугл рекомендует Single activity подход.
3) Если minSdk 22, то скорее всего можно избавиться от зависимости     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4) Не нашел в манифесте разрешения INTERNET, скорее всего оно добавляется при мерже манифестов зависимостей, имхо, лучше явно указать в своем манифесте
5) для релизной сборки лучше включить minifiedEnabled = true
6) Попробуй настроить Gitlab CI, чтоб при пуше в master собиралась сборка и деплоилась в App Tester -- это тулза от Google для дистрибуции сборок тестировщикам
7) Также можно написать юнит-тесты или удалить папки с тестами, т.к счс это мертвый груз, который занимает место. Навряд ли будущие работодатели оценят это :)
8) Попробуй добавить статический анализатор кода типа ktlint, чтоб бил по рукам за неправильно отформатированный код, неиспользуемые импорты и т.п

XML:
1) для читаемости лучше использовать закрытые тэги, вместо <activity android:name=".login.verify.VerifyActivity"></activity>
2) В xml layout'ах местами используется цвет @color/..., а иногда #000000, лучше привести к одному формату с @color/...
3) Не хватает форматирования xml, например, тэг android:id всегда должен идти первым, тогда глаз "цепляется" за него и быстрее понимаешь за что отвечает это view
4) @dimen/dp10 - бесмыслено, имхо. dp10 всегда будет равен 10dp, почему бы тогда так и не написать
5) @+id/linear_layout_send_code - я бы назвал container_send_code, т.к в будущем ты можешь заменить на FrameLayout или другой ViewGroup и придется менять id, а так только класс
6) @+id/text_view_home_make_order и другие я бы назвал так:  homeMakerOrderTextView, потому что так легче понять предназначение view, а потом уже ее класс.

Code:
0) Переходи на Котлин :)
1) Чтоб избавиться от findViewById(R.id.toolbar) можно использовать View binding
2) Нужно отформатировать код, т.к. много лишних пробелов, пустых строк, etc. См. пункт 8 раздела Проект
3) В MainActivity в нескольких местах вызывается         NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); - вынеси в глобальную переменную класса
4) Intent intent = new Intent(Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       intent.putExtra(Intent.EXTRA_TEXT, "Salam");
у интента есть билдер - используй его:
Intent intent = new Intent(Intent.ACTION_SEND)
       .setType("text/plain");
       .putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       .putExtra(Intent.EXTRA_TEXT, "Salam");
5) Убери код, который ни на что не влияет -- else {
           return;
       }
6) BaseFragment - пустой класс, зачем он нужен?)
7) Не оставляй очевидных комментариев, типа - // Inflate the layout for this fragment
8) В адаптере Вместо ArrayList<Order> используй интерфейс List<Order>
9) Не используй конкатенацию строк вот так currentOrder.getDate()+"", лучше .toString()
10) Пакет RecyclerView -- именуй пакеты с маленькой буквы, это общепринятый подход в Java/Kotlin

Успехов!
источник

a

abyl in Android KZ
Благодарю!
источник

N

Nurtas in Android KZ
Askar Syzdykov
Проект:
1) .idea лучше в .gitignore добавить, эта папка не для хранения в гите
2) Попробуй перевести приложение на фрагменты вместо активити, т.к. Гугл рекомендует Single activity подход.
3) Если minSdk 22, то скорее всего можно избавиться от зависимости     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4) Не нашел в манифесте разрешения INTERNET, скорее всего оно добавляется при мерже манифестов зависимостей, имхо, лучше явно указать в своем манифесте
5) для релизной сборки лучше включить minifiedEnabled = true
6) Попробуй настроить Gitlab CI, чтоб при пуше в master собиралась сборка и деплоилась в App Tester -- это тулза от Google для дистрибуции сборок тестировщикам
7) Также можно написать юнит-тесты или удалить папки с тестами, т.к счс это мертвый груз, который занимает место. Навряд ли будущие работодатели оценят это :)
8) Попробуй добавить статический анализатор кода типа ktlint, чтоб бил по рукам за неправильно отформатированный код, неиспользуемые импорты и т.п

XML:
1) для читаемости лучше использовать закрытые тэги, вместо <activity android:name=".login.verify.VerifyActivity"></activity>
2) В xml layout'ах местами используется цвет @color/..., а иногда #000000, лучше привести к одному формату с @color/...
3) Не хватает форматирования xml, например, тэг android:id всегда должен идти первым, тогда глаз "цепляется" за него и быстрее понимаешь за что отвечает это view
4) @dimen/dp10 - бесмыслено, имхо. dp10 всегда будет равен 10dp, почему бы тогда так и не написать
5) @+id/linear_layout_send_code - я бы назвал container_send_code, т.к в будущем ты можешь заменить на FrameLayout или другой ViewGroup и придется менять id, а так только класс
6) @+id/text_view_home_make_order и другие я бы назвал так:  homeMakerOrderTextView, потому что так легче понять предназначение view, а потом уже ее класс.

Code:
0) Переходи на Котлин :)
1) Чтоб избавиться от findViewById(R.id.toolbar) можно использовать View binding
2) Нужно отформатировать код, т.к. много лишних пробелов, пустых строк, etc. См. пункт 8 раздела Проект
3) В MainActivity в нескольких местах вызывается         NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); - вынеси в глобальную переменную класса
4) Intent intent = new Intent(Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       intent.putExtra(Intent.EXTRA_TEXT, "Salam");
у интента есть билдер - используй его:
Intent intent = new Intent(Intent.ACTION_SEND)
       .setType("text/plain");
       .putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       .putExtra(Intent.EXTRA_TEXT, "Salam");
5) Убери код, который ни на что не влияет -- else {
           return;
       }
6) BaseFragment - пустой класс, зачем он нужен?)
7) Не оставляй очевидных комментариев, типа - // Inflate the layout for this fragment
8) В адаптере Вместо ArrayList<Order> используй интерфейс List<Order>
9) Не используй конкатенацию строк вот так currentOrder.getDate()+"", лучше .toString()
10) Пакет RecyclerView -- именуй пакеты с маленькой буквы, это общепринятый подход в Java/Kotlin

Успехов!
Четко, мое уважение
источник

JM

Janibek Marshal in Android KZ
Askar Syzdykov
Проект:
1) .idea лучше в .gitignore добавить, эта папка не для хранения в гите
2) Попробуй перевести приложение на фрагменты вместо активити, т.к. Гугл рекомендует Single activity подход.
3) Если minSdk 22, то скорее всего можно избавиться от зависимости     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4) Не нашел в манифесте разрешения INTERNET, скорее всего оно добавляется при мерже манифестов зависимостей, имхо, лучше явно указать в своем манифесте
5) для релизной сборки лучше включить minifiedEnabled = true
6) Попробуй настроить Gitlab CI, чтоб при пуше в master собиралась сборка и деплоилась в App Tester -- это тулза от Google для дистрибуции сборок тестировщикам
7) Также можно написать юнит-тесты или удалить папки с тестами, т.к счс это мертвый груз, который занимает место. Навряд ли будущие работодатели оценят это :)
8) Попробуй добавить статический анализатор кода типа ktlint, чтоб бил по рукам за неправильно отформатированный код, неиспользуемые импорты и т.п

XML:
1) для читаемости лучше использовать закрытые тэги, вместо <activity android:name=".login.verify.VerifyActivity"></activity>
2) В xml layout'ах местами используется цвет @color/..., а иногда #000000, лучше привести к одному формату с @color/...
3) Не хватает форматирования xml, например, тэг android:id всегда должен идти первым, тогда глаз "цепляется" за него и быстрее понимаешь за что отвечает это view
4) @dimen/dp10 - бесмыслено, имхо. dp10 всегда будет равен 10dp, почему бы тогда так и не написать
5) @+id/linear_layout_send_code - я бы назвал container_send_code, т.к в будущем ты можешь заменить на FrameLayout или другой ViewGroup и придется менять id, а так только класс
6) @+id/text_view_home_make_order и другие я бы назвал так:  homeMakerOrderTextView, потому что так легче понять предназначение view, а потом уже ее класс.

Code:
0) Переходи на Котлин :)
1) Чтоб избавиться от findViewById(R.id.toolbar) можно использовать View binding
2) Нужно отформатировать код, т.к. много лишних пробелов, пустых строк, etc. См. пункт 8 раздела Проект
3) В MainActivity в нескольких местах вызывается         NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); - вынеси в глобальную переменную класса
4) Intent intent = new Intent(Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       intent.putExtra(Intent.EXTRA_TEXT, "Salam");
у интента есть билдер - используй его:
Intent intent = new Intent(Intent.ACTION_SEND)
       .setType("text/plain");
       .putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       .putExtra(Intent.EXTRA_TEXT, "Salam");
5) Убери код, который ни на что не влияет -- else {
           return;
       }
6) BaseFragment - пустой класс, зачем он нужен?)
7) Не оставляй очевидных комментариев, типа - // Inflate the layout for this fragment
8) В адаптере Вместо ArrayList<Order> используй интерфейс List<Order>
9) Не используй конкатенацию строк вот так currentOrder.getDate()+"", лучше .toString()
10) Пакет RecyclerView -- именуй пакеты с маленькой буквы, это общепринятый подход в Java/Kotlin

Успехов!
источник

MB

Mukhtar Bimurat in Android KZ
Askar Syzdykov
Проект:
1) .idea лучше в .gitignore добавить, эта папка не для хранения в гите
2) Попробуй перевести приложение на фрагменты вместо активити, т.к. Гугл рекомендует Single activity подход.
3) Если minSdk 22, то скорее всего можно избавиться от зависимости     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4) Не нашел в манифесте разрешения INTERNET, скорее всего оно добавляется при мерже манифестов зависимостей, имхо, лучше явно указать в своем манифесте
5) для релизной сборки лучше включить minifiedEnabled = true
6) Попробуй настроить Gitlab CI, чтоб при пуше в master собиралась сборка и деплоилась в App Tester -- это тулза от Google для дистрибуции сборок тестировщикам
7) Также можно написать юнит-тесты или удалить папки с тестами, т.к счс это мертвый груз, который занимает место. Навряд ли будущие работодатели оценят это :)
8) Попробуй добавить статический анализатор кода типа ktlint, чтоб бил по рукам за неправильно отформатированный код, неиспользуемые импорты и т.п

XML:
1) для читаемости лучше использовать закрытые тэги, вместо <activity android:name=".login.verify.VerifyActivity"></activity>
2) В xml layout'ах местами используется цвет @color/..., а иногда #000000, лучше привести к одному формату с @color/...
3) Не хватает форматирования xml, например, тэг android:id всегда должен идти первым, тогда глаз "цепляется" за него и быстрее понимаешь за что отвечает это view
4) @dimen/dp10 - бесмыслено, имхо. dp10 всегда будет равен 10dp, почему бы тогда так и не написать
5) @+id/linear_layout_send_code - я бы назвал container_send_code, т.к в будущем ты можешь заменить на FrameLayout или другой ViewGroup и придется менять id, а так только класс
6) @+id/text_view_home_make_order и другие я бы назвал так:  homeMakerOrderTextView, потому что так легче понять предназначение view, а потом уже ее класс.

Code:
0) Переходи на Котлин :)
1) Чтоб избавиться от findViewById(R.id.toolbar) можно использовать View binding
2) Нужно отформатировать код, т.к. много лишних пробелов, пустых строк, etc. См. пункт 8 раздела Проект
3) В MainActivity в нескольких местах вызывается         NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); - вынеси в глобальную переменную класса
4) Intent intent = new Intent(Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       intent.putExtra(Intent.EXTRA_TEXT, "Salam");
у интента есть билдер - используй его:
Intent intent = new Intent(Intent.ACTION_SEND)
       .setType("text/plain");
       .putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       .putExtra(Intent.EXTRA_TEXT, "Salam");
5) Убери код, который ни на что не влияет -- else {
           return;
       }
6) BaseFragment - пустой класс, зачем он нужен?)
7) Не оставляй очевидных комментариев, типа - // Inflate the layout for this fragment
8) В адаптере Вместо ArrayList<Order> используй интерфейс List<Order>
9) Не используй конкатенацию строк вот так currentOrder.getDate()+"", лучше .toString()
10) Пакет RecyclerView -- именуй пакеты с маленькой буквы, это общепринятый подход в Java/Kotlin

Успехов!
https://proandroiddev.com/my-android-project-template-1c0a7069ae31 @zhetesoft есче есть такой template с настроенным ktlint, detect и тд
источник

AS

Askar Syzdykov in Android KZ
👍
главное не юзать бездумно темплейты, как я делал будучи начинающим разработчиком)) а постараться самому сделать по документации, чтоб узнать больше нюансов
источник

т

таджик in Android KZ
Askar Syzdykov
Проект:
1) .idea лучше в .gitignore добавить, эта папка не для хранения в гите
2) Попробуй перевести приложение на фрагменты вместо активити, т.к. Гугл рекомендует Single activity подход.
3) Если minSdk 22, то скорее всего можно избавиться от зависимости     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4) Не нашел в манифесте разрешения INTERNET, скорее всего оно добавляется при мерже манифестов зависимостей, имхо, лучше явно указать в своем манифесте
5) для релизной сборки лучше включить minifiedEnabled = true
6) Попробуй настроить Gitlab CI, чтоб при пуше в master собиралась сборка и деплоилась в App Tester -- это тулза от Google для дистрибуции сборок тестировщикам
7) Также можно написать юнит-тесты или удалить папки с тестами, т.к счс это мертвый груз, который занимает место. Навряд ли будущие работодатели оценят это :)
8) Попробуй добавить статический анализатор кода типа ktlint, чтоб бил по рукам за неправильно отформатированный код, неиспользуемые импорты и т.п

XML:
1) для читаемости лучше использовать закрытые тэги, вместо <activity android:name=".login.verify.VerifyActivity"></activity>
2) В xml layout'ах местами используется цвет @color/..., а иногда #000000, лучше привести к одному формату с @color/...
3) Не хватает форматирования xml, например, тэг android:id всегда должен идти первым, тогда глаз "цепляется" за него и быстрее понимаешь за что отвечает это view
4) @dimen/dp10 - бесмыслено, имхо. dp10 всегда будет равен 10dp, почему бы тогда так и не написать
5) @+id/linear_layout_send_code - я бы назвал container_send_code, т.к в будущем ты можешь заменить на FrameLayout или другой ViewGroup и придется менять id, а так только класс
6) @+id/text_view_home_make_order и другие я бы назвал так:  homeMakerOrderTextView, потому что так легче понять предназначение view, а потом уже ее класс.

Code:
0) Переходи на Котлин :)
1) Чтоб избавиться от findViewById(R.id.toolbar) можно использовать View binding
2) Нужно отформатировать код, т.к. много лишних пробелов, пустых строк, etc. См. пункт 8 раздела Проект
3) В MainActivity в нескольких местах вызывается         NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); - вынеси в глобальную переменную класса
4) Intent intent = new Intent(Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       intent.putExtra(Intent.EXTRA_TEXT, "Salam");
у интента есть билдер - используй его:
Intent intent = new Intent(Intent.ACTION_SEND)
       .setType("text/plain");
       .putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
       .putExtra(Intent.EXTRA_TEXT, "Salam");
5) Убери код, который ни на что не влияет -- else {
           return;
       }
6) BaseFragment - пустой класс, зачем он нужен?)
7) Не оставляй очевидных комментариев, типа - // Inflate the layout for this fragment
8) В адаптере Вместо ArrayList<Order> используй интерфейс List<Order>
9) Не используй конкатенацию строк вот так currentOrder.getDate()+"", лучше .toString()
10) Пакет RecyclerView -- именуй пакеты с маленькой буквы, это общепринятый подход в Java/Kotlin

Успехов!
Ого в будущем можете мне тоже разобрать код
источник

т

таджик in Android KZ
😂
источник

AS

Askar Syzdykov in Android KZ
Скидывай ссылку.

Может кто-то захочет совместные созвоны с разбором кода делать? На прошедшем podlodka Android Crew был такой формат, мне очень понралось.
Что надо сделать:
1) собрать репы тех, кто хочет ревью проекта
2) собрать хотя бы двух человек, кто хочет сделать разбор
3) выбрать 1 проект из пункта 1
4) созвониться и сделать разбор

Что думаете?
источник

AS

Askar Syzdykov in Android KZ
Слушатели смогут подчерпнуть что-то полезное для своего проекта
источник

TB

Timur Borgalinov in Android KZ
Askar Syzdykov
Скидывай ссылку.

Может кто-то захочет совместные созвоны с разбором кода делать? На прошедшем podlodka Android Crew был такой формат, мне очень понралось.
Что надо сделать:
1) собрать репы тех, кто хочет ревью проекта
2) собрать хотя бы двух человек, кто хочет сделать разбор
3) выбрать 1 проект из пункта 1
4) созвониться и сделать разбор

Что думаете?
отличная идея
источник

YM

Yelaman Myrzakhanov in Android KZ
Timur Borgalinov
отличная идея
+
источник

TN

Timur Nurmagambetov in Android KZ
Народ а что общего есть между андроид и иос разработкой? Сложно будет освоить и иос тоже?
источник

TB

Timur Borgalinov in Android KZ
Timur Nurmagambetov
Народ а что общего есть между андроид и иос разработкой? Сложно будет освоить и иос тоже?
если в натив то особенностей много
источник

TB

Timur Borgalinov in Android KZ
в кроссплатформу можно впринципе react-native или flutter
источник

AS

Askar Syzdykov in Android KZ
Есть идея организовать публичный код ревью Android проекта. Интересно? Если да, то выбери наиболее подходящий для тебя вариант
public poll

Я зритель. Хочу посмотреть, как ревьювят другие 🧐 – 42
👍👍👍👍👍👍👍 66%

Интересно! Хочу, чтобы мой проект отревьювили более опытные разработчики 🙈 – 13
👍👍 20%

Так так, у меня есть опыт и я хочу быть ревьювером 😎 – 7
👍 11%

Я - iOS разработчик, лучше пойду разбираться почему Xcode крашнулся 🔫 – 2
▫️ 3%

👥 64 people voted so far.
источник