Рубрика «разработка мобильных приложений» - 104

Недавно я провел исследование о main() методе в Java и то, как он служит точкой входа для любого приложения Java. Это заставило меня задуматься, а как насчет Android-приложений? Есть ли у них основной метод? Как они загружаются? Что происходит за кулисами до выполнения onCreate()? Майкл Бэйли очень подробно рассказал о том, как работает Main Thread, так что это быстрый обзор его доклада плюс дополнительная информация из Android Open Source Project (AOSP).

В этой статье мы рассмотрим:

  1. Что происходит от нажатия на иконку приложения до запуска MainActivity
  2. Найдем основной метод приложения и узнаем, как основной поток (он же UI, он же Main Thread) получает свое назначение.
  3. Рассмотрим роль, которую играют Looper & Handler в передаче сообщений, которые в конечном итоге приводят к созданию вашей Activity.

Что происходит при запуске приложения

При запуске любого приложения, многое происходит глубоко внутри на уровне ядра, например начальная загрузка Zygote, загрузка классов в JVM, а для JVM — найти основной метод static void main(String args []) и вызывать его. В случае Android JVM находит основной метод main() в ActivityThread. Затем он вызывает main(), после чего ядро передает управление вашему приложению. Итак, мы нашли точку входа — ActivityThread, но прежде чем подробно изучить это, давайте посмотрим на дорожную карту процесса, чтобы визуализировать всю операцию.
Читать полностью »

WebRTC: как два браузера договариваются о голосовых и видеозвонках - 1

Спойлер: никак. За них это делает разработчик.

Когда много лет назад начали убивать Flash, пострадали не только браузерные игры. Flash традиционно была сильна в голосовых и видеозвонках: прямой доступ к микрофону, камере, динамикам, возможность работать с UDP-пакетами. В HTML5 заменой стала технология WebRTC. Та самая, которая несколько месяцев назад наконец-то приземлилась в Safari и Edge. Теперь можно звонить с веб-страницы, открытой на iPhone, на другую веб-страницу, например, открытую в Firefox Quantum на линуксе.

Одна из «фишек» WebRTC, которой не было у Flash — это возможность P2P-соединений между браузерами. Но чтобы peer-to-peer работал, программисту придется помучиться. О том, как браузеры договариваются куда слать UDP-пакеты, и что при этом должен сделать разработчик — под катом.
Читать полностью »

Зимняя стажировка для мобильных разработчиков в Redmadrobot - 1

Привет! Мы открываем набор на четвертую стажировку для разработчиков в московском офисе Redmadrobot. Старт 18 января 2018 года, продолжительность программы 7-8 недель. Сбор заявок до 24 декабря.
Читать полностью »

Полезное дизайнеру: бесплатные новинки для оптимизации дизайн-процессов. Выпуск 2-й - 1

За последнее время мне удалось найти множество интересных мини-продуктов и небольших инструментов / утилит, которые призваны ускорить ваш дизайн-процесс. В этом выпуске вы найдете 14 ссылок на разные релизы, авторы которых вносят значительный вклад в развитие профессионального сообщества дизайнеров и разработчиков.
Читать полностью »

С недавнего времени занялся разработкой мобильных приложений с помощью Xamarin.Forms в связи с производственной так сказать необходимостью. Не буду конечно рассказывать про танцы с бубнами чтобы написать и запустить на эмуляторе приложение «Hello, World!», но главное разработка пошла достаточно плавно.

Благо и понимание задачи было — а именно — взаимодействие мобильного приложения с базой данных внутренней CRM системы в компании, добавить сотрудникам мобильности, но при этом не забывать и о безопасности. Было принято решение создать WebAPI, ибо чтобы работать с уже привычными ASMX веб-сервисами в Xamarin нужно плясать с бубнами.

Как сказал выше, в том числе хотелось сделать «связующее звено» достаточно безопасным, а значит мобильное приложение должно иметь авторизацию (до кучи и удобства с возможностью сохранения авторизации и автоматического входа.

Не хотелось глубоко копаться в реализации WebAPI с авторизацией на уровне Token, а хотелось сделать что-то попроще, тем более пока «гуглил» видел что такого желания у людей с избытком, но все отсылы отвечающих были либо к стандартным механизмам, либо использования каких-нибудь пакетов из NuGet, чего хотелось бы по максимуму избежать.

В базе собственной CRM и так уже есть вся информация для авторизации и городить что-то лишнее тупо не хотелось.

В итоге, после долгих мытарств, поисков и т.п. — думаю у меня получилось достаточно неплохое решение, которым мне и хочется поделится с сообществом.
Читать полностью »

Мы продолжаем публиковать материалы Школы мобильной разработки 2017 года. На очереди — большая лекция Android-разработчика Дмитрия Никитина из команды Яндекс.Почты. Дмитрий рассказывает, как подойти к созданию проекта с нуля, не потеряться среди множества библиотек и на что обратить внимание при выборе того или иного решения.

— Все вы как минимум пару месяцев программируете под Android. Возможно, кто-то программирует пару лет и уже от корки до корки прочитал developer.android.com. А возможно, нет. Но вы все наверняка знаете, как можно сделать многие вещи как минимум одним из способов. Но не секрет, что этих способов может быть много, у каждой команды они могут быть свои, и часто тот или иной способ выбран исключительно по историческим причинам.

Сегодня я хочу сделать небольшой обзор того, какие вообще есть альтернативы и средства разработки и на чем стоит акцентировать внимание при выборе той или иной библиотеки.
Читать полностью »

В новом дайджесте мы пишем про то, что у Facebook и Snapchat практически одновременно запустились AR-редакторы, про то, как правильно готовить разработку, про рефакторинг и ROM-ы, про дверь в лето для кошек от Microsoft и многое другое.

Дайджест интересных материалов для мобильного разработчика #234 (11 декабря — 17 декабря) - 1Читать полностью »

Каждая компания хочет, чтобы её товары стояли на полках всех магазинов — чистенькие, с нормальным сроком годности, этикеткой к покупателю, на проходном месте и на удобной высоте. Бери и неси на кассу. Но жизнь, как говорится, вносит свои коррективы. Поэтому мерчандайзер регулярно объезжает магазины, чтобы проверить, как всё расставлено на самом деле.

У нашего заказчика есть продукция, которую он производит и поставляет в розничные магазины по всей России. Мерчандайзеры — его глаза и руки. Не хватало только удобного технологического инструмента, который поможет контролировать представленность товара, а случись что — оперативно сообщать о сбоях, чтобы как можно быстрее всё исправить.

Мы сделали решение на базе мобильного приложения и портала, которые оцифровали работу мерчандайзера. Ниже опишем подробности, поделимся примерами кода и техническими идеями, которые помогли упростить работу пользователей и снизили риски недобросовестного отношения и мошенничества. Мы решили рассказать всё это, потому что самим интересно посмотреть со стороны, как оцифровывается процесс с бумаги — это словно построить самолет на кульмане или в 3D-виде.

imageЧитать полностью »

Disclaimer

Все мы видим, что сфера продвинутой аналитики набирает обороты и все больше специалистов интересуются данной областью. При этом понятной и доступной информации о построении процесса бизнес-анализа при разработке аналитических приложений в открытых источниках не так много. Поэтому очень сложно определиться с правильным рецептом (последовательностью действий) в рамках данного направления. В связи с этим я решил систематизировать ключевые ингредиенты и поделиться с вами пошаговой инструкцией, которая описывает действия аналитика по проработке предметной области и превращении туманной задачи «сделай то, не знаю что» в детальные требования к будущему приложению.

Построение процесса бизнес-анализа в проектах по разработке BI-приложений с продвинутой визуализацией - 1

Читать полностью »

Как правильно чистить лук, или Почему разработка ПО выходит из-под контроля - 1

Вы придумали стартап и с самыми лучшими намерениями нанимаете разработчика для реализации своей идеи. Но идет неделя за неделей, а приложение по-прежнему нуждается в доработке. Как-то незаметно появляются новые функции, и масштаб задачи понемногу расширяется.

Складывается ощущение, что проект зажил собственной жизнью и пытается сожрать вас.

Как правильно чистить лук, или Почему разработка ПО выходит из-под контроля - 2

Как так случилось? Может, наняли плохого разработчика? Кто-то ошибся в планировании проекта? А вдруг сама идея проекта была ужасной?

Возможно. Но часто проект бывает с самого начала обречен на провал из-за недопонимания одного важного момента.

Мы предполагаем, что продукт определяется набором функций, записанных на листочке бумаги: иногда что-то добавляется, иногда убирается — но масштаб проекта всегда будто бы можно понять с одного взгляда.

Это предположение — неверно.

Проект — это не лист бумаги, не двумерный объект — у него есть глубина.

Каждую функцию на поверхности можно раскрыть — и так слой за слоем. Будь у меня склонность к громким заголовкам, я бы сказал, что всякое приложение — это лук, и нужно уметь правильно его чистить. Не очень понятно? Тогда давайте я поясню, что имеется в виду, и расскажу, почему не получается раскрывать слои приложения без слёз.

Переведено в AlconostЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js