• Как можно охранять окружающую среду если ты разработал мобильное приложение?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Разработал ТикТок, в разы увеличил пользование смартфонами по всему миру, увеличил энергопотребление - нагадил природе. Не разрабатывай мобильные приложения, не совершай ошибку.
    Ответ написан
    Комментировать
  • С чего начать погружение в IT?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Начните со своей идеи приложения. Что вы хотите чтобы ваше приложение делало и отображало на экране? В мобильном приложении есть несколько ключевых функций - ввод и отображение информации на экране, работа с аппаратными данными устройства (работа с камерой, gps, другими встроенными датчиками устройства), обработка информации на устройстве, хранение данных на устройстве, получение и передача данных по интернету. Не все функции нужны в каждом приложении, но это основное на что можно разделить приложение. Так вот придумайте приложение, которое реализует что-то из таких модулей и несёт практическую пользу.
    Андроид приложение начинается с желания отобразить что-то на экране смартфона. И все курсы по андроид разработке с этого и начинаются - с обучения отобразить что-то на экране (да не только... на любом языке всё начинается с программы Hello World!).
    В процессе разработки и обучения вы уже поймёте надо ли вашему приложению хранить данные в телефоне или всё можно хранить в какой-то общей базе данных на сервере. Являются ли данные для вашего приложения нужными только одному пользователю на его телефоне или это общая публичная информация, которая должна быть доступна множеству пользователей и т. д. Должно ли приложение само проводить все расчёты и вычисления или этим должен заниматься сервер (а значит программировать должен отдельный серверный разработчик), а приложение только показывать данные. Ну и т.д. Ну и учите курсы по Kotlin. Сейчас въезжать в андроид на java уже нет смысла так как 90% вакансий уже на котлине, а пока вы научитесь будет 100.
    Ответ написан
  • С чего начать изучать мобильную разработку?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Если решите под андроид, то берите курсы с обучением на языке kotlin. Процентов 80% вакансий уже требуют котлин, а через полгода будет 100.
    Можно изучать flutter (технология гугла для приложений и под андроид и под айфон), но это только если есть мак, так как без него не сможете проверить приложение под айфоны, а без этого и смысла нет эту технологию учить.
    Курсы есть у otus.ru, geekbrains, skill-branch.ru.
    Ответ написан
    Комментировать
  • Как сделать приложение популярным?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    ASO оптимизация. Название, описание, ключевые слова, иконка, скриншоты. Всё это может дать какой-то стабильный трафик. Но по-любому на первых строчках ключевых запросов находятся сильнейшие конкуренты с баблом и закупками пользователей и рекламой. Думаю бесплатно реально держаться в десятке по ключевому запросу, но первое место без вложений не возьмёшь.
    Ответ написан
    Комментировать
  • Какой gps трекер на android для детей и семьи выбрать?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Если у ребёнка китайфон, то возможно приложение убивается системой оптимизации батареи. Добавьте приложение в исключения оптимизации и разрешите работу в фоне. Где искать настройки зависит от устройства.
    Ответ написан
  • Соотношение скачиваний и удалений Google Play?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Количество установок отображается уровнями

    1+ (1 - 5)
    5+ (6 - 10)
    10+ (11 - 50)
    50+ (51 - 100)
    100+ (101 - 500)
    500+ (501 - 1000)
    1000+ (1001 - 5000)
    5000+ (5001 - 10000)
    10000+ (10001 - 50000)
    50000+ (50001–100000)
    100000+ (100001–500000)
    500000+ (500001–1000000)
    1000000+ (1000001–5000000)
    5000000+ (5000001–10000000)
    10000000+ (10000001–50000000)
    50000000+ (50000001–100000000)
    100000000+ (100000001–500000000)
    500000000+ (500000001–1000000000)
    1000000000+ (1000000001–5000000000)
    Ответ написан
    2 комментария
  • Стоит ли продолжать после плохих оценок в PlayMarket?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Приложение должно выполнять заявленные функции, не тупить и не вылетать. Желательно быть красивым по дизайну. Также желательно чтобы оно было как можно легче, иначе может оказаться первым кандидатом на удаление при нехватке места на смартфоне. Над количеством установок надо тоже работать - это ASO. Текстовая оптимизация названия, краткого описания, полного описания, выход на лидирующие позиции по поисковым запросам характерным для ваших конкурентов, тестирование и выбор наиболее эффективных вариантов иконки и скриншотов приложения. Ну и в любом случае среднее приложение теряет 90% пользователей к концу первого месяца, так что надо обеспечивать стабильный приток пользователей, так как это похоже на просеивание песка в поисках золотой крупинки (пользователь, который будет пользоваться вашим приложением постоянно). Также полезно в приложении реализовать уведомления (либо по какому-то внутреннему алгоритму, либо внешне отправкой уведомлений через консоль) - это помогает вернуть пользователей в приложение, напомнить им о нём. Гугл при сортировке приложений в поиске учитывает ежедневное удержание пользователей.
    Ответ написан
  • Какой ноутбук выбрать при разработке приложений под Android?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Андроид студия занимает 1,5-2 гига в памяти. Плюс запущенный один эмулятор столько же примерно. Плюс открытый браузер, так как вы будете постоянно что-то искать, мессенджеры типа слак или телеграм и другая мелочь. Короче с 8 гигов оперативки всегда будет впритык и подтормаживать. Вздохнул только когда на работе добавили до 16гигов. И вообще кодить удобно на 3х мониторах - студия. браузер, эмулятор на разных мониторах. Не хотел бы мучиться на ноутбуке, слава богу не приходится.
    Ответ написан
    Комментировать
  • Как сейчас изучать дополненную реальность?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Самые современные курсы на udacity.com Там поищите.
    Ответ написан
    Комментировать
  • Почему сотрудники Google Play заблокировали мое приложение?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Для использования AdMob надо добавить политику конфиденциальности
    https://www.youtube.com/watch?v=wfxSxSAUHZM
    Ответ написан
    1 комментарий
  • Как сделать доступное боковое меню на всех Activity?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    или копипастить эту менюшку на каждую активити. но это плохой подход. правильно - фрагменты.
    Ответ написан
    Комментировать
  • Почему не грузится FL.ru?

    Fotonick
    @Fotonick Автор вопроса
    android-er (Навальный отменит налоги фрилансерам)
    Разобрался. Мой комп использовал DNS сервера антивируса Comodo. И fl.ru попал у комодо в недоверенные адреса видимо, поэтом многое не грузилось. Поменял dns на автоматические и фл начал грузиться.
    Ответ написан
    Комментировать
  • Почему не заполняется ListFragment когда фрагмент вызывается повторно?

    Fotonick
    @Fotonick Автор вопроса
    android-er (Навальный отменит налоги фрилансерам)
    Оказалось что это вот этот баг https://code.google.com/p/android/issues/detail?id...

    нужно было в адаптере ViewPager использовать не getFragmentManager а
    mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
    Ответ написан
    Комментировать
  • Программа учета рабочего времени?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Тоже пользовался motivateclock но у неё конкретные проблемы с определением рабочих программ. Часто не выходит из паузы. Rescuetime у меня для статистики. Ну а с тех пор как ушел с фриланса в офис необходимость просто отпала. На рабочем компе просто не запускаю ничего лишнего ибо работы полно. В домашнем браузере еще StayFocusd установлен с ограничением 10 минут на новости ВК.
    Ответ написан
    Комментировать
  • C чего начать программировать под Android на Kotlin?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Udacity.com курсы по андроиду в поиске. Курсы на английском, но простейший курс с русскими субтитрами. Заодно и английский подтянете. А если решитесь не просто бесплатные курсы, а nanodegree, то еще и гугловский сертификат получите по окончании. Я пока в процессе.
    Ответ написан
  • Почему Collections.sort сортирует не одинаково?

    Fotonick
    @Fotonick Автор вопроса
    android-er (Навальный отменит налоги фрилансерам)
    После наводки Денис Загаевский переписал вот так
    Collections.sort(allLawyersList, new Comparator<OneLawyerClass>() {
                            @Override
                            public int compare(OneLawyerClass o1, OneLawyerClass o2) {
                                return Integer.parseInt(o1.getLawyerID()) < Integer.parseInt(o2.getLawyerID()) ? 1
                                        : (Integer.parseInt(o1.getLawyerID()) > Integer.parseInt(o2.getLawyerID()) ? -1 : 0);
                            }
                        });
    Ответ написан
  • Как исправить обработку кнопок?

    Fotonick
    @Fotonick Автор вопроса
    android-er (Навальный отменит налоги фрилансерам)
    Всё оказалось элементарно. Надо было просто в каждом обработчике кнопки перед вызовом callback извлечь нужный элемент из arraylist. И передавать в колбеке не position а сам oneAppClass

    oneAppClass = (OneAppClass) getItem(position);
    callbacks.onAppEdit(oneAppClass);

    Соответственно
    public interface Callbacks {
    void onAppAccept(OneAppClass oneAppClass);

    void onAppEdit(OneAppClass oneAppClass);

    void onAppDelete(OneAppClass oneAppClass);
    }

    А иначе им оставался последний загруженный элемент списка, что логично не соответствовало нажатой кнопке.
    Ответ написан
    Комментировать
  • Как залить картинку на сервер с указанием id в параметрах?

    Fotonick
    @Fotonick Автор вопроса
    android-er (Навальный отменит налоги фрилансерам)
    надо было так добавить

    connection.setRequestProperty("id_app", id_app);
    
    DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
    
    outputStream.writeBytes(twoHyphens + boundary + lineEnd);
    outputStream.writeBytes("Content-Disposition: form-data; name=\"id_app\"" + lineEnd + lineEnd + id_app + lineEnd);
    Ответ написан
    Комментировать
  • Как обновить фрагмент после AsyncTask, вызванного кнопкой в адаптере?

    Fotonick
    @Fotonick Автор вопроса
    android-er (Навальный отменит налоги фрилансерам)
    Решение от MikkiMouse

    в адаптер добавил
    private Callbacks callbacks;
    
        public interface Callbacks {
            void onAppAccept(int position);
    
            void onAppEdit(int position);
    
            void onAppDelete(int position);
        }
    
        public void setCallbacks(Callbacks callbacks) {
            this.callbacks = callbacks;
        }


    там же в адаптере обработчик кнопки вызывает один из методов
    holder.appEdit = (Button) convertView.findViewById(R.id.appEdit);
                holder.appEdit.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
    
                        callbacks.onAppEdit(position);
    
                    }
                });


    Во фрагменте перед назначением адаптера

    oneAppAdminAdapter = new OneAppAdminAdapter(AllAppsAdminFragment.this, allAppsList);
    
                            oneAppAdminAdapter.setCallbacks(new OneAppAdminAdapter.Callbacks() {
                                @Override
                                public void onAppAccept(int position) {
    
                                   //вызов асинтаска принятия
                                }
    
                                @Override
                                public void onAppEdit(int position) {                                
    
                                   //вызов фрагмента редактирования
                                }
    
                                @Override
                                public void onAppDelete(int position) {
                                   //вызов асинтаска удаления
                                }
                            });
    
                            setListAdapter(oneAppAdminAdapter);
    Ответ написан
    Комментировать
  • Как найти источник баннеров на Android?

    Fotonick
    @Fotonick
    android-er (Навальный отменит налоги фрилансерам)
    Когда появляется баннер нажми кнопку недавних приложений. У окошка с баннером будет название того приложения, которое его показывает. Сам так мучился. Оказалось полноэкранный баннер показывало приложение будильник в бесплатной версии.. Так как будильник хороший, решил купить платную версию и баннер исчез. Не нравился бы - удалил бы приложение просто.
    Ответ написан