Результати пошуку за запитом: курс - практикум по frontend разработке*
Основні етапи тестування мобільних додатків
Автор: Lauren Gilmore
Етап 1: Планування
Етап 2. Визначення необхідних типів тестування мобільних додатків
Етап 3: Тестові випадки та розробка сценаріїв тестування додатку
Етап 4: Ручне та автоматичне тестування
Етап 5: Тестування юзабіліті та бета-тестування
Етап 6: Тестування продуктивності
Етап 7: Атестаційне тестування та тестування безпеки програми
Етап 8: Тестування пристрою
Етап 9: Контрольний етап та резюме
Висновок
Ваш покроковий алгоритм тестування мобільних додатків
Забезпечення якості (QA, від англійської – Quality Assurance) є невід'ємною частиною життєвого циклу розробки будь-яких додатків, включаючи мобільні. На жаль, багато хто випускає з уваги критичні особливості тестування мобільних додатків, які часто призводять до збоїв, помилок у роботі додатку та поганої якості обслуговування клієнтів.
Щоб забезпечити успішну розробку будь-якого додатку, фахівець-тестувальник повинен брати участь у всіх етапах розробки: від створення концепції та аналізу вимог до створення специфікацій тестування та випуску готового продукту. Забезпечення якості також є ключовим елементом у наступних оглядах програмного продукту, які йдуть після проходження етапів розробки.
Однак часто буває складно визначити, з чого розпочати організацію процесу тестування мобільного додатку. Для безпроблемного тестування ми рекомендуємо просто виконати дев'ять наведених нижче кроків.
Давайте розглянемо особливості тестування мобільних додатків.
Цикл життя спринтів
Етап 1: Планування
Коли етап розробки додатку майже завершений, ви повинні знову поставити перед собою питання – чого ви намагаєтеся досягти розробкою цього додатку та які у вас є обмеження.
Ви повинні визначити наступне:
Чи взаємодіє ваш додаток з іншими додатками?
Наскільки функціональні всі можливості додатку?
Чи є тестований мобільний додаток нативним, Mobile-web або гібридним?
Чи обмежена задача тестування додатку тестуванням лише зовнішнього інтерфейсу?
Чи стоїть завдання на тестування бекенду?
Яка має бути сумісність із різними бездротовими мережами?
Як сильно дані додатку та вільний простір, який він займає, залежать від особливостей використання додатку?
Наскільки швидко завантажується ваш додаток, наскільки швидко відбувається серфінг по меню додатку та його функціям?
Як оброблятиметься можливе збільшення навантаження на додаток?
Чи впливають різні зміни у статусі та стані телефону на роботу мобільного додатку?
Переконайтеся, що ви домовилися з командою тестувальників про роль кожного з них та про ваші очікування від процесу тестування. Зрештою, спілкування є ключем до підтримки правильного робочого середовища в команді.
Правильне розуміння ролей і завдань також стосується і моменту прописування списку тест-кейсів. Уся команда QA повинна підтримувати та оновлювати цей документ зі звітами з тестування всіх функцій, реалізованих протягом усього процесу розробки.
Етап 2. Визначення необхідних типів тестування мобільних додатків
Перед тестуванням будь-яких мобільних додатків визначте, що саме в даному мобільному додатку ви хочете протестувати: набір функціональності, зручність використання, сумісність, продуктивність, безпека тощо. На цьому етапі має сенс обрати методи тестування мобільного додатку.
Визначте, на які цільові пристрої спрямовано цей додаток, та які вимоги до функціоналу слід перевірити.
Ви також маєте визначити, які цільові пристрої потрібно включити до списку тестування.
Ви можете зробити це наступним чином:
З'ясувати, які пристрої підтримуватиме додаток;
Визначити, яка версія операційної системи буде найбільш ранньою з тих, що підтримуються додатком;
Виявити найпопулярніші моделі мобільних пристроїв у цільової аудиторії;
Визначити набір неосновних (додаткових) пристроїв з екранами різних розмірів, які потенційно підтримуються додатком;
Вирішити, чи використовуватимете для тестування фізичні пристрої або їх емулятори.
Джерело: https://gs.statcounter.com/screen-resolution-stats/mobile/worldwide/#monthly-201804-201904-bar
Етап 3: Тестові випадки і розробка сценаріїв тестування додатку
Підготуйте документ, який описує тестові випадки (test cases) для кожної функції та функціональності, що тестується.
Крім функціональних тестових випадків, також повинні бути охоплені деякі окремі моменти (кейси):
Особливість використання батареї.
Швидкість роботи додатку.
Вимоги до даних.
Об'єм пам'яті, що використовується.
Також перед початком тестування важливо визначитися, яке поєднання ручного та автоматичного тестування ви будете застосовувати.
При необхідності підготуйте окремі набори ручних тестових випадків та сценаріїв для автоматичного тестування і адаптуйте їх відповідно до вимог проєкту.
Етап 4: Ручне та автоматичне тестування
Тепер настав час для виконання ручних та автоматизованих тестів.
Раніше, на попередніх етапах, ви вже визначили, які тести та скрипти використовувати та підготували їх. Тепер на поточному етапі ви виконуєте запуск тестів для перевірки механізмів основної функціональності, щоб переконатися у відсутності поломок.
Автоматизоване тестування мобільних додатків добре економить час та інші ресурси тестувальників.
Етап 5: Тестування юзабіліті та бета-тестування
Після того, як базовий функціонал протестований, настав час переконатися, що мобільний додаток є досить простим у використанні і забезпечує задовільний користувацький досвід. На цьому етапі необхідно підтримувати відповідність матриці кросплатформності, щоб забезпечити охоплення користувачів різних платформ, досягнуте бета-тестерами.
Приклад матриці підтримки різних версій платформи iOs
Після того, як додаток буде протестований всередині компанії, ви зможете випустити бета-версію додатку на ринок.
Тестування сумісності
Мобільні пристрої різняться залежно від платформи, моделі та версії їхньої операційної системи. Важливо обрати таку підмножину пристроїв, яка відповідатиме вашому додатку.
Тестування інтерфейсу користувача
Користувацький досвід є ключовим елементом при тестуванні додатку. Адже наша програма розробляється саме для кінцевих користувачів. Вам слід якісно перевірити зручність використання програми, навігацію її елементами та контент. Тестуйте меню, опції, кнопки, закладки, історію, налаштування та навігацію додатку.
Тестування інтерфейсу
Тестування пунктів меню, кнопок, закладок, історії, налаштувань та навігації додатком.
Тестування зовнішніх факторів
Додатки для мобільних пристроїв не будуть єдиними додатками на пристрої користувача. Разом із вашим додатком будуть встановлені програми від сторонніх розробників. Можливо, десятки таких програм. Отже вашому додатку доведеться взаємодіяти з цими сторонніми додатками і переривати роботу різних функцій пристрою, таких, як різні типи мережевих підключень, звернення до SD-картки, телефонні дзвінки та інші функції пристрою.
Тестування доступності
Мобільними пристроями можуть користуватися різні люди з обмеженими можливостями. З цієї причини важливо протестувати можливість роботи з додатком людей із дальтонізмом, порушеннями слуху, проблемами похилого віку та іншими можливими проблемами. Таке тестування є важливим складником загального тестування юзабіліті.
Етап 6: Тестування продуктивності
Мобільні пристрої надають для додатків менший об'єм пам'яті та меншу доступну потужність процесора, ніж стаціонарні комп'ютери та ноутбуки. З цієї причини в роботі мобільних додатків дуже важлива ефективність використання ресурсів, що надаються. Вам слід перевірити працездатність додатку, що тестується, змінивши з'єднання з 2G, 3G на WiFi, перевірити швидкість відгуку, споживання заряду батареї, стабільність роботи і т. д.
Рекомендується перевіряти додаток на предмет масштабованості застосування та наявності можливих проблем із продуктивністю.
В рамках цього етапу важливо пройти і тестування навантаження мобільного додатку.
Функціональне тестування
Функціональність додатку має бути повністю протестоване. Особливу увагу слід приділити встановленню, оновленням, реєстрації та входу в систему, забезпеченню, роботі зі специфічними функціями пристрою та повідомленням про помилки.
Функціональне тестування мобільного додатку, здебільшого, може бути виконане так само, як ви виконали його для будь-якого іншого типу додатку. З цієї причини ми не будемо вдаватися в подробиці цього типу тестування. Однак слід вказати області, які мають особливе значення для мобільних додатків.
Майте на увазі, що функціональне тестування повинно включати тестування всіх функцій додатку і не повинно бути надмірно зосереджено на якійсь одній функції.
В рамках функціонального тестування вам слід виконати наступні тести:
Тестування процесу встановлення.
Тестування можливості оновлень.
Експлуатаційне тестування.
Тестування процесу реєстрації та авторизації.
Тестування функцій, специфічних для пристрою.
Тестування надсилання та отримання повідомлень про помилки.
Низькорівневе тестування ресурсів: використання пам'яті, автоматичне звільнення ресурсів тощо.
Тестування сервісів: функціонування як в режимі онлайн, так і в автономному режимі.
Етап 7: Атестаційне тестування і тестування безпеки додатку
Безпека та конфіденційність даних мають величезне значення у наш час. Користувачі вимагають, щоб вся їхня інформація зберігалася безпечно та конфіденційно.
Переконайтеся, щоб програма, яка тестується, була надійно захищена. Виконайте перевірку на можливість впровадження SQL ін'єкцій, на можливість перехоплення сеансів, аналізу дампів даних, аналізу пакетів і SSL трафіку.
Дуже важливо перевірити безпеку сховища конфіденційних даних вашого мобільного додатку та його поведінку відповідно до різних схем дозволів для пристроїв.
Окрім перевірки безумовного шифрування імен користувачів та паролів, задайте собі наступні питання:
Чи має додаток сертифікати безпеки?
Чи використовує додаток безпечні мережеві протоколи?
Чи існують які-небудь обмеження, наприклад кількість спроб входу до системи блокування користувачів?
Этап 8: Тестування пристрою
Виконайте тести за тими алгоритмами, які ви раніше прописали у тестових випадках та сценаріях тестування, на всіх визначених для тестування пристроях, у хмарі та/або на фізичних пристроях.
Этап 9: Контрольний етап та резюме
Цей етап включає в себе детальне і повне тестування – від ранніх ітеративних етапів тестування до регресійних тестів, які все ще можуть знадобитися для стабілізації роботи додатку та виявлення незначних дефектів.
На цьому етапі тестування ви можете додати для перевірки нові функції та змінити налаштування на ті, яких не буде у фінальній версії.
Після завершення тестування додатку додаткові параметри та функції, додані для перевірки на цьому етапі, видаляються, і остаточна версія стає готовою до представлення громадськості.
Підсумковий звіт про тестування
Весь процес тестування мобільних додатків має бути ретельно задокументований. Перевірте двічі, чи зроблені необхідні записи, і після цього сформуйте свій остаточний звіт про тестування (test summary report).
Цей звіт повинен включати:
Важливу інформацію, виявлену в результаті проведених випробувань.
Інформацію про якість тестування, яке проводиться.
Зведену інформацію про якість тестованого мобільного додатку.
Статистику, отриману зі звітів про різні інциденти.
Інформацію про види тестування та час, витрачений на кожен із них.
Слід також зазначити у звіті, що:
цей мобільний додаток придатний для використання в тій якості, в якій заявлено;
відповідає всім критеріям прийнятності функціоналу та якості роботи.
Озброївшись зведенням, керівництво проєкту тепер може вирішити, чи готовий мобільний додаток до випуску на ринок.
Тестування мобільних додатків – складне завдання. Пристосовуючи ці етапи тестування до кожного розроблюваного додатку і ретельно виконуючи кожен крок, ви гарантовано отримаєте повнофункціональний якісний продукт.
Висновок
У цій статті ми розглянули особливості тестування мобільних додатків. Розглянуті етапи тестування важливі і для тестування андроїд додатків, і як відповідь на питання “як тестувати додатки для iPhone?”.
Важливо пам'ятати, що тестування додатків перед представленням на ринку – важливий етап розробки будь-яких додатків. І, звичайно ж, тестування мобільних додатків має свої особливості та важливі моменти.
Відповідально підходьте до питання розробки та тестування мобільних додатків, своєчасно вивчаючи та застосовуючи актуальні методики та технології. З нашого боку ми рекомендуємо для вивчення курс на ITVDN – Unit тестування для Android розробників.
За матеріалами статті.
Також Вам можуть бути цікаві:
Відео курси за спеціальністю Quality Assurance
Відео курси за спеціальністю Android Developer
Відео курси за спеціальністю iOS Developer
Декілька порад при навчанні з відеокурсів
Автор: Infopulse
Введение
В последнее время было много сказано о будущем электронного образования (eLearning), но многие ли понимают, как использовать наиболее популярный формат обучения – видео-обучение? Сегодня постараемся определить несколько подсказок для более эффективного использования видео-обучения.
В первую очередь вам стоит помнить, что просмотр видео курсов ставит вас в пассивную роль, тем не менее у вас остается возможность участвовать в дискуссии с вашими коллегами на форумах, чатах и т.д. Если у вас нет возможности вести обсуждение нового материала с ментором или с учащимся, приучитесь фиксировать свои достижения и затем возвращаться к ним для пересмотра ошибок.
Чередуйте просмотр видео и практические занятия, даже если вы смотрите продолжительный по времени урок, сделайте паузу и выполните часть домашнего задания. Это позволит в лучшей мере освоить пройденный материал и, как говорится, «закрепить» его на практике.
Проецируйте новый материал через призму вопроса «как сделать …?» или «как не делать …?». Это позволит вам быстрее приучиться к мысли, что все новые возможности нужно использовать для решения определенного рода задач. Также помните, что для решения любой задачи может существовать минимум два решения.
Тщательно сохраняйте все выполненные промежуточные практические задания, это поможет вам проводить работу над ошибками, и вы сможете воочию наблюдать ваш рост. Имея историю ваших работ, вы сможете анализировать возможность применения разных технологий для решения одной и той же задачи. Только так, на практике вы оцените, какую технологию лучше использовать в том или ином случае.
Проводите оценку ваших знаний путем сдачи экзаменов и получения сертификатов. Подтверждение ваших знаний в виде сертификатов – это первый шаг к построению успешной карьеры и планового повышения вашего уровня заработной платы.
В ходе обучения работайте над вашим портфолио, неважно в какой сфере вы специализируетесь, уже давно прошли те времена, когда портфолио было только у графических дизайнеров, сегодня каждый уважающий себя разработчик имеет открытый репозиторий на GitHub c личным проектом. Можете даже постить на вашей ленте в Facebook очередные достижения и фрагменты красиво написанного кода. Это будет стимулировать вас и вызовет положительные отзывы у ваших друзей.
Участвуйте в онлайн обсуждениях (интернет-конференции и вебинары). Подобные события позволят вам обзавестись новыми знакомствами и обсудить ваши вопросы с более опытными коллегами.
Как видите, можно легко выработать правила, которые будут полезны и приятны именно вам. В любом случае, помните - обучение должно строиться на сбалансированном распределении внимания между теорией, практикой и публичном заявлении, что вы что-то знаете и умеете.
Роль сертифікації для компанії та співробітника
Автор: Олександр Марченко
Введение
Продолжаем с Вами знакомиться с понятием профессиональной сертификации, и в этой части поговорим о роли сертификации для компании и для сотрудника.
Большинство наших знакомых ИТ-специалистов предлагают следующие варианты обоснования целесообразности сертификации:
Требуется для компании в рамках программы развития сотрудников. (Нечто подобное в Британии сделали обязательным, ознакомьтесь с понятием Chartered IT Professional);
Рассчитываю на бонусы или повод для повышение заработной платы;
Рассчитываю на способствование карьерному росту;
Хочу подтвердить свои знания и навыки.
Каждый из нас когда-то приходил к подобным умозаключениям, но кто из нас хоть однажды задумывался о том, чего ожидает компания от сертификации? Попробуем себе представить…
Партнерские программы с вендором. Каждый вендор имеет программы Gold/Silver partner и подобные им. Так, когда заказчик видит подобное свидетельство качества, у него повышается уровень доверия и лояльности. Зачастую такие программы партнерства подразумевают не только финансовые взносы и соответствие многим параметрам оценки, но и присутствие в штате компании нужного числа сертифицированных специалистов.
«Необходимое и достаточное условие» для участия в конкурсах и тендерах, торгах и т.д. Зачастую для того, чтобы заполучить желаемого заказчика, нужно «помочь» ему составить требования к «ожидаемому» подрядчику. А что может быть еще более непредвзятым, как мнение третьей стороны, как сертификация, выданная независимым провайдером или вендором? К тому же, если у конкурента нет такого преимуществе – победа, считайте, у Вас в кармане.
Честолюбие или тщеславие. Если Вы часто бываете в крупных компаниях, особенно ИТ интеграторах, Вы видели у них стену или целый зал славы, стены в котором сплошь увешаны табличками с разными золотыми партнерскими статусами за последние N лет, наградами и почетными грамотами. А в коридорах Вы можете изучать историю сертификации доброй половины ведущих специалистов.
Отбор кандидатов. Точно также, как Вы выбираете врача для своего ребенка, сервисный центр для обслуживания автомобиля, юриста с его дипломами и наградами – также и компания в лице рекрутера выбирает себе сотрудника.
Вспомните, как часто у Вас просили ссылку на Ваш профиль на GitHub, кто-то спрашивал у Вас, как часто Вы даете советы или ответы на вопросы на StackOverflow или кто-то похвалил Вашу статью на популярной блоговой платформе для ИТ-шников?
А как часто Вы заявляли об этом в своем резюме? И как часто Вы включаете номера своих сертификатов и обновляете их на своем профиле в LinkedIn?
Думаю, Вам понятно, что сертификация — это какая-никакая гарантия качества знаний сотрудника.
В то же время, могу Вас заверить, что при активной «социальной» деятельности, которая подтверждает Ваши знания и опыт, такой как выступления на тематических конференциях, модерирование хакатонов, ведение интересных блогов, разработка курсов для начинающих разработчиков и т.д., Вам не понадобится сертификация для уверения рекрутера в Вашей надежности и соответствии требованиям проекта.
Но, если Вы начинающий специалист, которому нужно оказаться лучше, чем толпы конкурентов, задумайтесь над тем, что заставит рекрутера смотреть именно в Вашу сторону, задумайтесь сможете ли Вы дать компании то, что дорого для нее.
З чого розпочати вивчення JavaScript?
Автор: Дмитро Охріменко
JavaScript – прототипно-ориентированный язык программирования, который используется для написания сценариев, выполняемых специальным программным обеспечением. JavaScript часто используется при написании сценариев для веб приложений, но в последнее время язык начал активно применяться и в других областях разработки – в серверных приложениях (node.js), на мобильных платформах (PhoneGap) и даже для разработки приложений для Windows (Windows Store with JS). Как вы видите, язык достаточно активно используется и входит в 10 популярных языков программирования, поэтому многие начинающие разработчики и уже опытные изучают этот язык программирования. В сети можно найти самоучители, книги с примерами кода и видео уроки по JavaScript в достаточном количестве. Но проблема в том, что уроков для начинающих и других учебных материалов очень много, и у большинства возникает проблема - «что и в какой последовательности учить?». Задача данной статьи помочь вам найти правильный путь в изучении JavaScript.
Каждый для себя выбирает наиболее удобную и эффективную форму обучения – это могут быть книги по JavaScript и самоучители для самостоятельного обучения, очные курсы программирования, где тренер может ответить на вопросы, или видео уроки по JavaScript и примеры JavaScript кода. Какой бы из подходов вы ни выбрали – главное, последовательно и планомерно следовать программе обучения и максимально много практиковаться, так как без практики запомнить и научится применять большое количество разнообразных языковых конструкций достаточно тяжело.
Если вы выберите самостоятельное изучение, обязательно приобретите следующие книги по JavaScript. Настольная книга любого JavaScript разработчика – Дэвид Флэнаган «JavaScript Подробное руководство». Вторая книга, которая позволит вам правильно организовывать свой код - Стоян Стефанов «JavaScript Шаблоны», но она пригодится вам позже, когда вы разберете примеры JavaScript кода из предыдущей книги.
В изучении JavaScript можно выделить несколько этапов:
Изучение языковых конструкций: переменные, циклы, условные конструкции, функции.
Освоение объектов и массивов.
Изучив основы работы с языковыми конструкциями и основными типами данных, можно перейти к освоению главной задачи JavaScript – манипулированию DOM дерева. Вы должны научится работать с элементами, которые находятся на странице, динамически создавать новые узлы и изменять существующие.
Изучение шаблонов проектирования и кодирования, которые позволят разрабатывать понятный и сопровождаемый код.
Изучение дополнительных библиотек и фреймворков, например, jQuery.
Изучая материалы книги Дэвида Флэнагана, вы сможете пройти первые 3 этапа, а книга Стояна Стефанова поможет научиться правильно организовывать JavaScript код. В дополнение к книгам вам могут помочь видео уроки по JavaScript для начинающих и JavaScript для профессионалов.
Початок кар'єри в ІТ
Автор: Олександр Марченко
Введение
Пожалуй, все давно знают, что эра технологий уже наступила, и произошло это уже давно. На сегодняшний день невозможно создать производство чего-либо без использования информационных технологий.
Насколько целесообразным является выбор именно Информационных технологий в качестве своей профессиональной сферы, решать каждому из Вас. Но Вам будет очень трудно найти что-то более динамичное и захватывающее. Также стоит помнить, что и уровень зарплат по-прежнему сохраняет статус наиболее привлекательных, практически во всех современных экономиках развитых государств.
Что нужно знать о построении своей карьеры? Все решают Ваши знания и отношения с другими людьми. Причем, влияние этих двух аспектов абсолютно равноправное.
Если Вы отдадите должное внимание построению нужных связей и знакомств, будете постоянно пополнять свой круг общения новыми приятными и полезными знакомствами, и, главное, не забудете поддерживать старые отношения, то всегда будете оставаться в более выгодных условиях.
И наоборот, тот, кто будет разбрасываться знакомствами, ставить свои приоритеты выше других, вести себя неподобающе в современном обществе, в итоге приобретет дурную славу, которая очень быстро распространиться по локальному ИТ-сообществу и за его пределами.
Первым шагом в построении карьеры, скорее всего будет трудоустройство на первую работу. И тут придется ответить на самый страшный вопрос: «Где взять 2 года опыта?»
Порой этот вопрос звучит следующим образом: «Где я обзаведусь опытом работы в реальных проектах, если я только учусь/только что выпустился/работаю в другой сфере/не имел опыта с этой платформой?». И это абсолютно правильный вопрос, поскольку работодатель хочет нанять надежного профессионала, а не дилетанта.
Попробуем найти ответы на этот вопрос, и вот несколько вариантов:
Принимайте участие в хакатонах и OpenSource проектах
Данного рода активности позволят Вам обзавестись своими личными проектами. Их Вы сможете развивать, при этом, без сомнений, улучшите свои профессиональные навыки и обзаведетесь полезными знакомствами. Ведь они могут сыграть ключевую роль в Вашем будущем.
Анализируйте чужой код
Доступ к которому все также легко получить на OpenSource проектах. Вы не сможете стать профессионалом и создавать свои решения до тех пор, пока не сможете полностью понимать чужие. Это все равно как учиться писать, не имея навыков чтения.
Участвуйте в стажировках
Большинство крупных компаний с огромным удовольствием берут на стажировки студентов, которые проявляют потенциал. Вам никто не даст участвовать в крупных и критически важных проектах, но зато Вы сможете проявить себя в реальных условиях, да еще и сделать это под чутким руководством более опытных коллег. Дополнительным бонусом стажировок является пусть и незначительная, но возможность получения приглашения на работу. Для этого нужно постараться, но никто и не говорил, что будет легко.
Кроме всего прочего не забывайте о постоянной работе над собой. Если Вы хотите оставаться востребованным на рынке труда специалистом, Вам необходимо оставаться в курсе последних событий ИТ-мира и непрерывно совершенствоваться. Для Вас не должно быть открытием то, что работа - это рутина, а вот обучение зачастую приносит больше удовольствия. Так превратите свою работу в непрерывное развитие, и Вы не пожалеете!
Що таке нативні та кросплатформні програми? Плюси і мінуси.
Автор: Армен Маїлян
Что такое нативные приложения?
Что из себя представляют кроссплатформенные приложения?
Какие инструменты для разработки кроссплатформенных приложений применяют чаще всего?
Преимущества и недостатки нативного подхода
Преимущества и недостатки кроссплатформенных приложений
Вывод
Мировая статистика использования смартфонов показывает абсолютное преобладание всего двух мобильных операционных систем. Так, по данным портала statista.com, во втором квартале 2018 OS Android была установлена на 88% всех используемых смартфонов, а iOs – на 11.9%. Данные портала netmarketshare.com, в свою очередь, показывают на апрель 2019 для OS Android – 69.63%, а для iOs - 28.50%.
По состоянию на март 2019 в Google Play Store находилось более 2 600 000 приложений. В Apple App Store, по данным на июль 2018 – 2 450 220 приложений. В течение последних лет количество доступных приложений растет на сотни тысяч в год. По прогнозам statista – к 2020 году объем рынка мобильных приложений приблизится к 190 млрд $. При таком, постоянно растущем количестве конкурентов, перед разработчиками мобильных приложений встает вопрос - какой подход использовать в разработке, чтобы новые, конкурентоспособные приложения:
разрабатывались быстро;
получались качественными и надежными;
легко обновлялись и поддерживались;
легко задействовали все необходимые возможности платформы.
Фактически, рынок заставляет разработчика делать выбор между разработкой кроссплатформенных приложений и разработкой нативных приложений. Рассмотрим детальнее, что представляет из себя каждый из указанных подходов.
Что такое нативные приложения?
Нативные приложения (от англ. native - родной) разрабатываются под конкретную аппаратно-программную платформу и пишутся на языках, созданных для данной платформы. И iOs, и Android имеют свои SDK (от англ. software development kit — набор средств разработки) и свой стек технологий, завязанные на определенный язык программирования. Например, родными языками для Android являются Java и Kotlin, для iOS, соответственно - Swift и Objective-C.
Нативные приложения создаются специально для запуска на целевой платформе - с поддержкой всех нативных технологий и аппаратных возможностей конкретной платформы.
Что из себя представляют кроссплатформенные приложения?
Как следует из названия, кроссплатформенность подразумевает создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег на разработку. Часто для этого используются специализированные кроссплатформенные фреймворки.
Примером такой разработки является применение фреймворка Xamarin для создания приложений, работающих не только на Windows. Благодаря использованию Mono (опенсорс реализации платформы .Net), проекты, написанные на C#, успешно запускаются на Unix-like системах – iOs, Android, Linux.
Какие инструменты для разработки кроссплатформенных приложений применяют чаще всего?
Ссылаясь на статистику appfigures.com можно выделить такие инструменты:
Как мы видим наиболее часто применяемым инструментом разработки кроссплатформенных мобильных приложений на конец 2017 года был Cordova – 39.89%. Вторым по частоте применения инструментом является Unity – 30.93%. Третьим – Adobe Flash с 10.39%. Следом идут Cocos2D – 9.37%, Xamarin – 4.5%, Appcelerator – 3.79%, Corona – 2.68%, React Native – 1.85%.
Итак, стоит ли вам инвестировать в разработку отдельных нативных приложений на несколько платформ сразу, или убивать двух зайцев одним выстрелом, разрабатывая кроссплатформенные приложения? Или может стоит вообще сосредоточиться только на одной платформе и не обращать внимание на другую, пока не достигнут успех среди приложений первой?
По данным портала appfigures.com на начало 2018 года количество приложений, присутствующих на обеих популярных платформах, было вполне ощутимым:
450 тысяч приложений на обеих платформах. Это более 28% приложений в Apple App store и 14% в Google Play Store. Это выглядит достаточно весомой частью, чтобы задуматься об присутствии на обеих платформах и попытке экономии используя кроссплатформенную разработку.
По данным того же портала, многие уже существующие приложения расширяют свой рынок, выходя, со временем, на другой платформе. При че чаще приложения выходят дополнительно на Android, выпускаясь изначально под iOs.
Можно также наблюдать тенденцию к снижению процента кроссплатформенных приложений за 2016 – 2017 годы.
Так стоит ли потратить деньги на разработку двух нативных приложений, идеально соответствующих каждой платформе, или есть смысл сэкономить ресурсы и получить одно – кроссплатформенное?
Давайте рассмотрим плюсы и минусы каждого из указанных подходов.
Преимущества и недостатки нативного подхода
Плюсы нативных приложений
Высокая производительность
Поскольку технологии, используемые при разработке платформозависимых приложений, напрямую связаны с этой платформой, собственный нативный код имеет прямой доступ ко всем функциям операционной системы.
Это, более простое взаимодействие приложения с собственными функциями мобильных устройств, повышает общую производительность приложения, особенно при представлении графического или мультимедийного контента.
Следовательно, создание нагруженных приложений с использованием нативного кода может снизить время отклика, вероятность сбоев и зависаний.
Максимальное использование возможностей платформы
Нативные приложения задумываются и разрабатываются, чтобы решать конкретные задачи на конкретной платформе. Это приводит к лучшему соответствию возможностей приложений аппаратным возможностям устройств, включая Bluetooth, NFC, камеру, GPS и т. д.
Эта соответствие необходимо, когда приложение должно использовать такие данные, как физическое и географическое местоположение и др.
Лучший пользовательский интерфейс
Поскольку нативные приложения напрямую интегрируются с мобильной операционной системой, воспринимая и используя все доступные возможности «железа», пользователи могут перемещаться по привычному интерфейсу без особых хлопот, что приводит к положительному пользовательскому опыту (UX) и стабильному повторному использованию. К примеру сейчас, при большом количестве разнообразных вариантов разрешений экранов смартфонов очень важно иметь приложение, оптимизированное под такой экран, чтобы пользователю было удобно этим приложением пользоваться.
Лучшее позиционирование в магазинах приложений
Качество пользовательского опыта является важным рейтинговым показателем в магазинах приложений. Если приложение имеет высокую оценку пользовательского опыта, оно будет более высоко оценено магазином приложений, что ведет к большему числу рекомендаций для разной аудитории и увеличению доходов от приложения, соответственно.
Есть предположение, что в магазинах приложений сами механизмы ранжирования будут лучше представлять приложения именно нативные для платформы, из-за их заведомо более высокой производительности и простоты использования.
Минусы разработки нативных приложений
Дороговизна и затраты времени на разработку
Без сомнения, создание отдельных приложений сразу под каждую из нескольких операционных систем может значительно продлить процесс разработки. Один и тот же программный код не может быть развернут на разных платформах, и программистам потребуется больше времени для преобразования и перезаписи кода, что увеличивает затраты и время разработки.
Если компания хочет для каждой из платформ создавать отдельные приложения, она может оказаться вынуждена нанять дополнительных программистов-специалистов. Например, один разработчик будет сосредоточен на разработке приложений для iOS, а другой - на разработке приложений для Android, что еще больше увеличивает расходы.
Несовместимость с другой мобильной операционной системой
Вам придется заранее согласиться с несовместимостью вашего приложения с другими ОС. Когда разрабатывается приложение под конкретную ОС, его разработчики используют язык, специфичный только для этой операционной системы: например, Objective-C или Swift - для iOS, для различных мобильных устройств на базе Android - Kotlin и Java. В этом контексте нативное приложение, которое изначально написано для iOs, не будет совместимо с устройствами на базе Android и наоборот.
Упущенные возможности
Разработка приложений, ориентированных только на одну платформу, может привести к упущенным возможностям. Особенно если другие платформы заранее не принимаются во внимание. Заведомое сокращение целевого рынка может привести к потере дохода.
Плюсы и минусы кроссплатформенных приложений
Как следует из названия, кроссплатформенность влечет за собой создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег.
Вот некоторые преимущества и недостатки использования кроссплатформенного подхода в разработке мобильных приложений.
Плюсы кроссплатформенных приложений
Один код доступен для повторного использования на других платформах
Основным преимуществом кроссплатформенной разработки мобильных приложений является тот факт, что один и тот же код может использоваться на разных мобильных платформах. В отличие от разработки нативного приложения, для кроссплатформенного приложения не требуется использование отдельного технического стека для каждой операционной системы.
Повторное использование кода позволяет легко развертывать приложение на другой платформе, так как возможности приложения, реализованные на одной платформе, будут работать и на других платформах.
Разработка кроссплатформенных приложений экономически эффективна
Одна команда может реализовать нужную идею сразу на всех платформах, используя единый технологический стек. Это приводит к меньшим затратам ресурсов.
Простое и быстрое развертывание
Разработчикам кроссплатформенных приложений не нужно изучать несколько технологических стеков различных платформ перед созданием своих приложений, им нужно хорошо освоить один стек разработки и особенности его применения.
Поскольку нет необходимости создавать разные кодовые базы, начальное развертывание на целевых платформах происходит намного быстрее.
Кроме того, будущие изменения в приложении могут выполняться одновременно, без внесения индивидуальных изменений на каждой платформе.
Кроссплатформенные приложения покрывают более широкую аудиторию
Кроссплатформенные приложения предлагают разработчикам больше возможностей для охвата более широкой аудитории, поскольку такие приложения достигают пользователей всех типов и мобильных устройств, независимо от их операционной системы. Это значительно рентабельнее для бизнеса, чем присутствие только на одной платформе.
Кроссплатформенные приложения допускают одинаковый интерфейс и UX
Тогда как производительность важна для любого мобильного приложения, его внешний вид (UI) и ощущения (UX) так же важны. Использование единой общей команды разработчиков и единого кода позволяет компаниям использовать одинаковый внешний вид приложения на всех платформах. То есть один и тот же пользовательский интерфейс и UX будет одинаково выглядеть на всех платформах.
Недостатки кроссплатформенной разработки приложений
Кроссплатформенные приложения не являются такими гибкими, как нативные приложения
Хотя задачи приложения будут реализовываться на всех платформах, скорее всего вы не сможете адаптировать готовое приложение для использования максимальных возможностей каждой из платформ.Работа с унифицированным стеком технологий не обеспечит такой же гибкости настройки и оптимизации, как применение стека технологий, индивидуального для каждой ОС.
Кроссплатформенные приложения не работают так же хорошо, как нативные приложения
Использование одного универсального стека технологий приносит в жертву гибкость. Однако потеря гибкости в разработке будет означать потерю возможности улучшить производительность. Поскольку кроссплатформенные приложения отказываются от некоторой гибкости, эти приложения не будут работать так же хорошо, как нативные приложения.
Возможное несоответствие UI в различных платформах
Внешний вид интерфейса приложения и правильная настройка UI для соответствия функционала в обеих системах может доставить проблем. К примеру, у каждой системы имеются свои требования к дизайну элементов UI. В определенных случаях эти требования могут оказаться взаимоисключающими.
Отправка кроссплатформенных приложений в соответствующие Магазины приложений может иметь сложности.
Механизм добавления вашего приложения, являющегося кроссплатформенным, в Apple App Store и в Google Play Store будет отличаться. Требования этих магазинов приложений к представленным у них продуктам различны. Прохождение всех проверок и выполнение всех правил для соответствия обоим магазинам будут вызывать определенные сложности.
Вывод
Подведем краткие итоги. Попробуем сузить наш достаточно сложный выбор между нативной разработкой и кроссплатформенной.
Обратите внимание на стратегию продвижения приложения и на его предполагаемый функционал. Если вам сразу нужен будет охват большей аудитории и у приложения функционал не является сложным - проще и дешевле воспользоваться кроссплатформенным подходом. Если вашему приложению необходимо использовать специфические особенности платформы, при этом нет необходимости в одновременном присутствии сразу и в Apple App Store, и в Google Play Store – разрабатывайте под выбранную платформу нативное приложение. И если ваши успехи покажут вам, что можно захватывать новый рынок – у вас уже будут средства на разработку под вторую платформу. Другие промежуточные варианты будут компромиссами и могут склонять чашу весов как к нативным, так и к мультиплатформенным решениям.
Используйте выбранный вами подход для построения качественных и полезных приложений. С нашей стороны можем порекомендовать ряд видеокурсов.
Для создания кроссплатформенных игр очень удобным инструментом является Unity и на ITVDN вы найдете серию видео курсов по разработке игр на Unity.
Если вы хотите попробовать себя в разработке кроссплатформенных приложений с использованием такого инструмента, как Xamarin, вам могут оказаться полезными такие уроки на портале ITVDN.com, как Xamarin. Легкий старт и Разработка пользовательского графического интерфейса (GUI) на C# под Android (Xamarin).
Если вы планируете в дальнейшем разработку нативных приложений под Android, мы рекомендуем начать с таких курсов - Java Starter и Java Essential.
Также смотрите на ITVDN видео курсы по специальности Android Developer и iOS Developer.
Правила застосування основних тегів HTML5
Автор: Антон Гончаров
Введение
Все мы уже знаем (ну или что-то слышали об) основных правила применения элементов разметки HTML5. Появилось много "плюшек" и “вкусностей” в новой спецификации HTML. Вместе с тем, появились новые элементы разметки. Но не все помнят/знают, как их использовать правильно.
Коротко остановлюсь на главных нововведениях HTML5:
Новые элементы: header, footer, section, article, video, audio, progress, nav, meter, time, aside, canvas;
Новые значения для атрибута type тега ;
Новые атрибуты HTML5 для элементов, такие как: dragable, contenteditable, hidden, contextmenu, data-*, dropzone, role, spellcheck[8] и т.д.;
Атрибуты class, dir, id, lang, style, tabindex, title, существовавшие в HTML4, теперь можно применять ко всем елементам HTML разметки;
Устаревшие элементы HTML страницы, которые частично поддерживаются и не рекомендуются к ипользованию: acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, strike, tt, u.
Итак, более детально рассмотрим, как же правильно использовать основные новые теги.
Элемент
Элемент <main>содержит главную информацию вашего сайта. Такие повторяющиеся элементы как логотип, окно поиска, меню навигации не рекомендуется вкладывать в <main>. Также не стоит помещать сам элемент <main> внутрь элементов <article>, <aside>, <header>, <footer> или <nav>.
Элемент
В элемент <article> следует помещать тот контент, который может быть удален без ущерба для всего сайта. К примеру, краткое описание новостей, рекламный баннер, статья, комментарии. Можно вкладывать <article> в <article>, что будет связывать вложенные элементы <article> с родительским.
Элемент
Элемент <header>, как понятно из названия, используется для оглавления отдельного контента или всей страницы. Должен содержать заглавие, дату статьи и т.д.
Элемент
Элемент <footer> служит для предоставления информации об авторе статьи/страницы, ссылки на авторские права и т.д. Обычно является прямым потоком тега <body> (помещается сразу за элемент <body>).
Элемент
Этот элемент содержит информацию об окружающем контенте, дополнительную информацию пользователю. Может содержать такой элемент, как <nav>, сноски, ссылки и т.д.
Элемент
Предназначен для предоставления контактной информации о статье или всей странице. Стоит отметить, что этот элемент часто помещают в
, для размещения ссылок для связи с авторами страницы.
Элемент
Элемент <nsfw> (англ. - Not Safe For Work – небезопасно для отработки) используется для размещения на странице контента сомнительного характера. Часто этот тег используют для размещения порнографии. Чтобы браузер не отображал такой контент, используют CSS код
nsfw {display: none ;}
Элемент
Элемент предназначен для размещения видео контента на странице. Для корректного отображения контента стоит прописать дополнительно атрибуты width, height, src, controls. Ваш код будет выглядеть примерно так:
<video width="840" height="480" src="../video/myVideo.mp4" controls> video>
Если же Вы хотите разместить у себя на странице видео, которое расположено на сайте youtube.com.
Вам стоит зайти на страницу c видео, правой кнопкой мыши нажать на видео, и из выпадающего меню выбрать “Получить код для встраивания”.
Копировать код из “попап” окошка.
В разметке вашего сайта, в нужном вам месте, кликнуть правой кнопкой мыши и выбрать “Вставить”.
У вас получится примерно такой код:
<iframe width="854" height="510" src="https://www.youtube.com/embed/_giinWWrNlQ" frameborder="0" allowfullscreen>iframe>
В свою очередь, элемент > создает область, которая позволяет загружать любой документ в себя.
Элемент
Элемент <audio> позволяет добавить на страницу аудио дорожки.
Также в HTML5:
Реализована возможность добавления на станицу геолокационных карт, а также определения местоположения пользователя в данный момент.
Теперь мы можем рисовать с помощью технологии canvas. А также использовать 3D графику.
Стало возможным просто перетягивать документы и прикреплять к письму.
И еще много новых "плюшек", которые вы можете узнать и научиться их использовать, пройдя наши курсы в учебном центре CyberBionic Systematics.
Всем удачи и хорошего кода)
Прості події
Автор: Костянтин Чорний
Введение
При разработке компьютерных систем и программ, в том числе таких, в которых функционирует множество оригинальных сущностей и их дублей – экземпляров, возникает проблема отслеживания связей взаимодействия между этими объектами. И чем больше появляется этих объектов , тем сложнее вписать их в структуру приложения. Да, можно сказать что здесь явные проблемы с архитектурой и так не должно быть, но все равно мы наталкиваемся на проблему создания крупной многообъектной системы с гибкими динамическими связями и адаптивным поведением. Лучшее решение – событийно-ориентированное программирование!
Итак, событие – это внезапное происшествие, появление которого нельзя предугадать, а можно только к нему готовиться. В подобном русле работает и человеческих мозг. Он ожидает появления события и, когда оно происходит, как-то на него реагирует.
Давайте рассмотрим небольшой мысленный эксперимент. Представьте дорогу, пешеходный переход и светофор, который регулирует переход в данном месте. Светофор – это объект, который порождает событие. Он по воле своего внутреннего устройства будет включать или отключать зеленый свет, который будет разрешать пешеходам переход через улицу.
В это время на тротуаре начинают собираться люди. Каждый человек – это объект, содержащий специфическое поведение, которое называется обработчиком события. В данном случае этот обработчик будет отвечать за пересечение улицы и будет вызываться во время возникновения события. У каждого человека обработчик разный, ведь все люди переходят через улицу по-разному. Один будет идти быстро, другой медленно, третий - смотреть на машины, которые стоят на перекрестке, а четвертый - следить за таймером, который будет отсчитывать секунды. Но каждый из них не предполагает, когда конкретно произойдет это событие, потому все они ждут на тротуаре.
Когда человек подходит к переходу, он подписывает свой обработчик события перехода дороги на конкретное событие этого светофора. Если человек передумает переходить или, например, отойдет поговорить по телефону, то он не будет выполнять свой обработчик, если событие возникнет.
И, наконец, когда светофор включается на зеленый, все люди начинают переходить дорогу. Возникло событие – выполнился обработчик.
Что-же нам позволяет сделать событийную модель? Она разрешает динамически изменять связи между объектами и не только расторгать или устанавливать их, но и менять характер самого действия.
Давайте рассмотрим пример создания события на языке C#.
namespace TrafficLight
{
// Светофор
public class Light
{
// Событие появления зеленого света
public event EventHandler Green;
// Метод который вызывает событие
public void SwichToGreen()
{
Green.Invoke(this, new EventArgs());
}
}
// Человек
public class Human
{
public string Name { get; private set; }
public Human(string name)
{
Name = name;
}
// Метод обработчик события перехода через дорогу
public void CrossingTheRoad(object sender, EventArgs e)
{
Console.WriteLine(this.Name + " crossing!");
}
}
class Program
{
static void Main(string[] args)
{
// Создание светофора
Light light = new Light();
// Создание людей
Human human1 = new Human("Alex");
Human human2 = new Human("Bob");
Human human3 = new Human("Alice");
// Подписка на событие
light.Green += human1.CrossingTheRoad;
light.Green += human2.CrossingTheRoad;
light.Green += human3.CrossingTheRoad;
// Вызов события
light.SwichToGreen();
Console.ReadKey();
}
}
}
Таким образом, язык C# позволяет быстро и легко создавать приложения, которые используют событийную модель. Более подробно узнать о событиях Вы можете в двенадцатом уроке курса C# Базовый.
Для практики можете создать небольшую игру с игровыми объектами, взаимодействующими посредством событий.
Розробка під Android - поради початківцям
Автор: Армен Маїлян
Овладейте языком
Хорошие навыки работы со средой разработки и другими правильными инструментами разработки
Знание компонентов приложения
Понимание фрагментации, Android-приложений, потоков, загрузчиков и задач
Правильный выбор необходимых инструментов разработки и последние советы
Вывод
Разработка приложений под различные мобильные платформы (Android, iOs) – это то, на что ориентируются многие опытные и начинающие разработчики программного обеспечения. Ведь именно приложения делают телефоны «умными» смартфонами. Благодаря своим преимуществам приложения кардинально изменили возможности и функции вчерашних «звонилок». Выбирая разработку под Android как целевую платформу, у нас есть выбор между Java и Kotlin - основными языками программирования для этой платформы. Сейчас мы не будем вдаваться в детали их различий, и отвечать на вопрос «на чем писать приложения для Android?». Мы уже затрагивали этот вопрос недавно в соответствующей статье «Kotlin vs Java: что лучше для Android-разработки?». Сегодня мы остановимся на Java. Попробуем сформулировать основные советы в разработке приложений под андроид для начинающих.
Овладейте языком
На сегодняшний день Java и XML являются двумя основными языками, используемыми при разработке приложений под Android. Поэтому знание и владение этими языками программирования и разметки является необходимым условием для разработки приложения под Android. Задав себе вопрос «с чего начать программирование под андроид?», вы получите достаточно простой ответ – изучите основной язык разработки и основы ООП.
Знания основ языка программирования Java должны включать в себя:
• Понимание и применение пакетов (Packages) в Java;
• Общее понимание ООП, понятия объектов и классов;
• Понимание механизмов наследования, понимание и умение работать с интерфейсами;
• Работа со строками и числовыми значениями, работа с дженериками;
• Понимание функционирования коллекций и работы с ними;
• Параллелизм.
Правильное понимание Java и XML поможет вам создать/разработать более надежное и элегантное приложение для Android.
Хорошие навыки работы со средой разработки и другими правильными инструментами разработки
Очень важно, чтобы, прежде чем приступить к полноценной разработке своего приложения, вы были хорошо знакомы с инструментами автоматизации сборки, а также с таким инструментом, как IDE - интегрированной средой разработки. В основном рекомендуется использовать Android App Studio IDE или Eclipse в качестве среды разработки. Применение их поможет вам изучить основы разработки и поможет вам улучшить качество вашего кода. Также советуем вам изучить такие механизмы как Apache Maven, Apache Ant и Gradle, поскольку они предоставляют собой мощный набор инструментов, помогающих управлять вашими сборками.
В процессе разработки важно, чтобы вы умели использовать инструменты и концепции контроля версий. Изучите git, а затем создайте репозиторий git-source (создав учетную запись в Bitbucket или GitHub). Чтобы получить представление об основных понятиях и условиях работы платформы, вы можете воспользоваться Git Pocket Guide.
Знание компонентов приложения
Компоненты приложения — при разработке андроид-приложений выступают в роли основных строительных блоков. В свою очередь каждый из таких блоков представляет из себя отдельную точку, с помощью которой в ваше приложение может войти система. Хотя каждый из компонентов существует как отдельная сущность и играет свою отдельную роль, есть ряд компонентов, которые зависят друг от друга. При этом не все из них окажутся фактическими точками входа.
Среди компонентов приложения выделяют пять разных типов, каждый из которых выполняет определенную роль и имеет свой собственный жизненный цикл, согласно которому он будет создаваться и уничтожаться. Они включают:
Операции (Activity): это компонент андроид, представляющий один экран с пользовательским интерфейсом (к примеру, приложение для работы с электронной почтой может иметь одну Activity, отображающую список входящих писем, другую Activity - составляющую e-mail, и третью - читающую эти письма). Операции работают вместе, чтобы сформировать единый пользовательский опыт в андроид-приложении. Несмотря на это, каждая из Activity является независимой.
Службы: компонент приложения в андроид, работающий в фоновом режиме и обеспечивающий выполнение длительных Activity и удаленных процессов. Этот компонент пользовательский интерфейс не предоставляет (например, пока пользователь обращается к интерфейсу другого приложения, он может проигрывать музыку в фоне).
Поставщики содержимого или Content providers: компонент андроид-приложения, управляющий общим перечнем данных приложения. Используя этот компонент данные, хранимые в базе данных SQLite, в Интернете или файловой системе, могут быть запрошены или изменены (если допускает поставщик содержимого). Этот компонент также применим как для записи, так и чтения тех данных, что являются частными, а не общими для вашего приложения.
Широковещательные приёмники или Broadcast receivers: компонент андроид-приложения, отвечающий на широковещательные сообщения, общие для системы. Большая часть таких сообщений происходят от системы. Broadcast receivers могут создавать в строке состояния уведомления, которые предупреждают пользователя, когда происходит широковещательное событие, хотя и не имеют пользовательского интерфейса. Как правило такой приёмник выполняет только минимальный объем работы, выступая для других андроид-компонентов в роли шлюза.
Активация компонентов: асинхронное сообщение, также имеющее название - намерение (Intent). Активирует 3 из 4 компонентов (то есть сервисы, Broadcast receivers и Activity). Intents также связывают отдельные компоненты друг с другом во время выполнения, вне зависимости от того, принадлежит ли вашему приложению данный компонент или нет.
Понимание фрагментации, Android-приложений, потоков, загрузчиков и задач
Android — это фрагментированный рынок с множеством видов устройств и различных версий операционной системы. Обратите внимание, что, чем больше ваше устройство поддерживает различных устройств и/или версий, тем больше оно требует обслуживания и тестирования и, соответственно, больше будет сопутствующих расходов. Вам также потребуются соответствующие шрифты, ресурсы и макеты, которые помогут обеспечить наилучшее взаимодействие с различными характеристиками экрана. Вы придется держать во внимании всё множество поддерживаемых Android датчиков и средств пользовательского интерфейса.
Распределение версий Android по данным statista.com
Иногда, для выполнения фоновых задач, вам приходится использовать службы, которые должны выполняться непрерывно. Но, в ряде случаев, применение их может оказаться невозможным. Если вы хотите создать отличный и удобный пользовательский интерфейс, всегда следите за тем, чтобы поток никогда не блокировался. Поэтому длинные операции (вычисления, ввод-вывод, сеть и т. д.) должны выполняться асинхронно в фоновом режиме (в основном в другом потоке выполнения). Вот почему важно изучить средства параллелизма языка Java.
Правильный выбор необходимых инструментов разработки и последние советы
Что нужно для создания приложения на андроид? Чтобы начать программировать под Android, вам подойдут весьма простые инструменты — это персональный компьютер с Mac или OS Windows, Linux. Сами же инструменты разработки ( IDE Eclipse, плагин ADT и Android SDK) – распространяются бесплатно.
Android имеет некоторые уникальные параметры, которые вам следует учитывать при написании приложений под Android. Среди них:
Производительность и скорость отклика: вы всегда должны реагировать на ввод пользователя в течение пяти секунд, в противном случае приложение выдаст ошибку ANR (ANR: application not responding - приложение не отвечает). Единственный доступный вариант - принудительно закрыть приложение.
Пользователи заметят лаги более 100 мс: как уже упоминалось выше, поток пользовательского интерфейса никогда не должен блокироваться, потому что он только один.
Ограниченные ресурсы: Wake-Lock (механизм, который заставляет устройство выполнять определенные действия, несмотря на рекомендацию менеджера батареи перевести устройство в спящий режим), следует использовать с осторожностью. Не обращайтесь лишний раз к элементам оборудования (например, GPS или акселерометру), потому что такие действия быстро разряжает аккумулятор.
Вывод
Мы с вами рассмотрели ряд простых советов для тех, кто начинает программировать под андроид. Надеемся, что данные рекомендации помогут вам создавать новые высококачественные приложения.
Если вы только раздумываете над направлением, в котором вам следует развиваться – рекомендуем посмотреть видео «Как стать Android разработчиком». В этом видео вы также сможете получить подходящие для вас ответы на вопрос «как начать программировать под Android?». Если вы уже определились с направлением развития и желаете получать знания в сфере разработки под Android - рекомендуем вам ознакомиться с нашим курсом подготовки Android Developer. Если вы уже имеете определенные навыки в разработке и ищете дополнительных знаний по отдельным технологиям - вам наверняка будет полезен курс «Автоматизация сборки проектов с помощью Apache Maven».
В свой очередь портал ITVDN.com желает вам успехов в обучении, интересных проектов и высокой зарплаты.
По материалам статьи от Эшна Верна.
Створюємо Telegram-бота на Python. Частина 2
Автор: Армен Маїлян
Чат боты — это новый инструмент взаимодействия разработчика с пользователем. Их все чаще внедряют для совершенно различных целей. Новостные ленты, обработка налоговых деклараций, сохранение файлов – боты становятся удобным интерфейсом взаимодействия c различными сервисами.
В прошлой статье мы рассмотрели, как написать простейшего чат-бота на Python и запустить его на своем компьютере. Сегодня мы рассмотрим, как того, написанного нами бота, разместить на внешнем сервере в сети Интернет.
В качестве места размещения мы будем использовать бесплатный сервис Heroku.
Установка и настройка Git
Для дальнейшей работы нам понадобится установить Git, зарегистрироваться на GitHub и создать репозиторий с именем нашего приложения. В нашем случае это MyFirstTestBot.
Скачать версии Git, соответствующие вашей операционной системе, можно по следующим ссылкам для macOS и для Windows. На Linux Git можно установить, выполнив такую команду:
sudo apt-get install git-all
Далее, желательно использовать виртуальную среду. Если она не установлена, при установке Python вы можете ее установить, выполнив команду:
pip install virtualenv
Создадим новую папку для нашего приложения и связи его с GitHub. В нашем случае это папка PythonApplication1 в корне диска C.
Выполним клонирование репозитория. Для этого находясь в нашей папке в консоли выполним команду, введя ссылку на ваш репозиторий:
git clone https://github.com/your_github_account/your_repository_name
После выполнения этой команды в нашей папке с именем PythonApplication1 мы получили еще одну папку – MyFirstTestBot.
В консоли перейдем в корень диска C и выполним команду:
virtualenv PythonApplication1
Если команда не выполняется, и вы на экране консоли видите «"virtualenv" не является внутренней или внешней командой…» - вам следует настроить системную переменную PATH и добавить в нее адреса расположения вашей папки с Python и подпапки со скриптами (в моем случае C:\Users\B\AppData\Local\Programs\Python\Python37-32\Scripts).
Будем в дальнейшем пользоваться консолью Git, которую мы установили ранее:
После выполнения этого скрипта в нашей папке будет такое содержимое:
Поместим скрипт в папку, полученную в результате выполнения команды git clone (папка MyFirstTestBot). Имя файла с нашим скриптом - mftb.py
Теперь запустим наше виртуальное окружение. Перейдем в консоли в папку C:\PythonApplication1 и выполним команду:
source C:\PythonApplication1\Scripts\activate
Если все сработало нормально – в консоли приглашение командной строки будет начинаться с имени нашей папки (PythonApplication1):
Перейдём в нашу папку репозитория и выполним команду:
pip install requests
Создадим список зависимостей для Heroku, введя команду:
pip freeze > requirements.txt
Обратите внимание – в файле requirements.txt указываются требования к серверу Huroku. Там должно быть приблизительно такое содержимое:
Если вы не продолжаете проект из предыдущей статьи, а создали новый – не забудьте указать все зависимости.
В папке MyFirstTestBot создадим файл с именем Procfile без расширения. В теле этого файла пропишем:
web: python mftb.py
В папке MyFirstTestBot создадим также файл с именем __init__.py без содержимого.
Содержимое нашей папки MyFirstTestBot теперь такое:
Отправим в GitHub репозиторий наш набор изменений. Для этого выполним следующую серию команд, с указанием ссылки на ваш репозиторий:
git init
git add .
git commit -m “first commit – ваше сообщение комментарий к коммиту”
git push -u https://github.com/your_github_account/your_repository_name
Код нашего бота теперь загружен на GitHub и нам остается загрузить его на Heroku, где будет хоститься наш бот.
Рекомендуется ознакомиться с основами работы с Heroku по ссылке. По той же ссылке следует скачать установщик интерфейса командной строки (CLI) от Heroku и запустить его.
После установки CLI зарегистрируемся на Heroku через веб браузер.
Далее подключимся к Heroku через консоль используя команду:
heroku login
Нас попросят подключиться через браузер к сайту Heroku и залогиниться там. Нужно будет ввести ваши данные.
Выполним команду для создания приложения в Heroku:
heroku create
Дальнейшие наши команды отправят наш проект на сервер Heroku и укажут необходимую настройку:
git push heroku master
heroku ps:scale web=1
Последняя команда запустит наше приложение на сервере:
heroku open
Теперь наше предложение установлено и запущено на сервере. Мы можем проверить это, пообщавшись с нашим ботом в Telegram:
Как мы видим – все работает. Если по каким-то причинам бот не запустился, нужно ввести в консоли команду:
heroku logs –tail
И смотреть на коды ошибок на сайте.
Резюме.
В прошлой статье мы с вами посмотрели, как можно создать простого Telegram бота. Теперь мы опубликовали его на удаленном сервере. Наш чатбот работает, и мы можем к нему обращаться, используя привычный мессенджер. Конечно, этот вариант бота далек от идеала, но для учебных целей, как первый проект бота, он подойдет.
Попробуйте создать своего бота с другим набором предопределенных ответов. В дальнейшем вы сможете создавать более продвинутых чатботов, работающих с нейросетями и другими элементам искусственного интеллекта.
Чаще всего востребованные библиотеки для работы ботов сейчас пишут на Python. Именно поэтому мы рассмотрели этот простой пример. Для дальнейшего развития вас как квалифицированного Python разработчика мы рекомендуем ознакомиться с курсом подготовки Python-разработчика на портале ITVDN.