Android — Выбор языка мобильного приложения в Android


Содержание

Локализация приложения Android

Вопросам локализации приложений уделено немало места на страницах нашего сайта. Наиболее значимая статья, связанная с фундаментальными основами локализации, рассказывает о региональных стандартах, форматах представления числовых, денежных и временных значениях в различных странах, ресурсных файлах и форматах сообщений. Поэтому, в этой статье будет рассмотрен только вопрос локализации интерфейса Android приложений. Здесь на примере мы должны увидеть процесс формирования и использования ресурсных файлов.

На странице описания табличной разметки TableLayout был создан файл table.xml, в котором уже подключались свойства ресурсного файла strings.xml. В этой статье мы продолжим эту тему и рассмотрим следующие вопросы локализации приложений в среде разработки Android Studio :

  • создание ресурсных директорий;
  • создание ресурсных файлов;
  • локализация интерфейса;
  • динамическое подключение ресурсных файлов.

Ресурсные директории

Для локализации интерфейса, первое, что нам необходимо выполнить, это создать ресурсные файлы, которые хранятся в определенных ресурсных директориях. Создадим такие директории для языков локализации «ru» и «en». Для этого выделяем проект p02Layout, открываем контексное меню правой клавишей мыши и выбираем пункт меню New / Android Resource Directory. В открывшемся диалоговом окне в списке Available qualifiers выбираем пункт Locale и переносим его в правую часть Chosen qualifiers нажатием на кнопку с изображением «двух стрелок вправо».

В результате предыдущего действия интерфейс окна изменится и появятся другие компоненты и списки. Теперь необходимо в списке Language выбрать нужный язык. Прокрутка списка для выбора русского языка не дала нужного результата. Русский язык не был найден и представленная на скриншоте строка не была обнаружена, несмотря на то, что в последнем списке (Specific Region Only:) страна «RU: Russia» присутствует. Но после ввода символов «ru» при активности (нахождении фокуса) списка Language, сразу же появилась нужная запись и поле фильтрации в верхней части списка. Возьмите это на вооружение при поиске требуемого языка локализации. Наименование директории values-ru было сформировано студией автоматически после выбора языка локализации. Следующим шагом точно также была добавлена директория для английского языка «en».

Примечание : в проекте ничего не изменилось; как была одна директория res/values, так к ней ничего и не добавилось. Это специфика Android Studio – ничего личного, только проект.

Но если посмотреть на структуру проекта со стороны проводника, то Вы сразу же увидите добавленные ресурсные директории values-en, values-ru. Так что особых тревог быть не должно; все делаем правильно и ничего не пропало.

Примечание :
1. При создании ресурсных директорий не был использован регион из списка Specific Region Only. Т.е. была выделена запись Any Region. Но если появится необходимость разделить англичан и американцев, то необходимо будет выделить дополнительно соответствующую запись и создать для английского языка две директории : res/values-en-rUK и res/values-en-rUS. Дополнительный символ обозначения региона к наименованию страны Studio добавит самостоятельно (. -rUK, . -rUS). Не забудьте, что в этом случае в объекте локализации Locale также должен быть учтен регион/страна.
2. Локализовать можно не только строковые ресурсы, но и изображения. Так, например, при использовании национальных флагов, следовало бы дополнительно создать соответствующие директории res/drawable-en, res/drawable-ru, в которых будут храниться изображения, ориентированные на определенные регионы.

Ресурсные файлы

После определения ресурсных директорий необходимо добавить ресурсные файлы. Для этого опять же выделяем проект, вызываем контекстное меню правой клавишей мыши и выбираем New / Android Resource File. В открывшемся диалоговом окне опять же выбираем Language и переносим его в список Chosen qualifiers, как это было сделано на предыдущем шаге. В списке Language вводим требуемый язык, в результате чего Studio определит директорию размещения файла (Directory name). Теперь необходимо ввести наименование файла (File name) и нажать ОК. Скриншот отображает состояние после выбора языка локалилизации и определения наименования файла ресурсов string.xml.

В результате создания ресурсных файлов в структуре проекта будут добавлены записи в раздел res/values/strings. Помним, что простой strings.xml используется по умолчанию, если в системе не будет найден ресурсный файл приложения для соответствующего объекта Locale.

Ресурсные файлы

После выполнения двух предыдущих шагов были созданы ресурсные директории с файлами string.xml. То есть в трех разных директориях (values, values-en, values-ru) хранятся три файла с одинаковыми наименованиями strings.xml. В этом суть отличия локализации приложений Android. Теперь необходимо определить содержимое файлов так, чтобы ключевые наименования у них были одинаковыми. Эти ключевые наименования будут использоваться для определения заголовков меток и кнопок.

Листинг файла values-ru/string.xml

Листинг файла values-en/string.xml

Содержимое файла values/string.xml определим согласно англоязычного варианта локализации.

Локализация интерфейса

При локализации интерфейса необходимо к текстовым параметрам меток (android:text), полям ввода (android:hint) и кнопкам (android:text) подключить соответствующие ресурсные строки. Это можно сделать двумя способами.

Определение ресурсных значений в файле описания конфигурации

Простой способ связан с прямым определением соответствующих значений в файле описания интерфейса интерфейса. Для этого необходимо открыть файл table.xml, найти в описании компонент и связать его параметры с соответствующими ресурсными строками. Вот как это выглядит для метки и текстового поля определения учетной записи :

Текстовое значение метки tvLogin связали с ресурсной строкой «@string/lbl_login» (android:text), а подсказку текстового поля edLogin связали с «@string/hint_login» (android:hint).

Определение ресурсных значений в панели атрибутов компонента

Установить связь текстового значения компонента с ресурсным значением можно через интерфейс среды разработки Studio. Для этого необходимо выделить компонент и перейти к панели атрибутов. Здесь следует найти соответствующий параметр. На следующем скриншоте представлена выделенная строка текстового параметра компонента кнопки.

Сейчас у кнопки определено несвязанное текстовое значение Button. Можно в этой же строке ввести новое/необходимое значение; но можно и нажать на кнопку с изображением многоточия. В результате будет открыто окно выбора ресурсного значения. Здесь находим нужную строку в списке и нажимаем ОК.

Динамическое подключение ресурсных файлов

Для реализации динамического изменения локализуемых надписей интерфейса приложения проще всего в интерфейс добавить пару кнопок : одна из кнопок будет переводить интерфейс на русский язык, а другая – на английский. Конечно же, желательно, чтобы на кнопках были изображены соответствующие флаги. Но не будем сейчас усложнять задачу и ограничимся дополнительным размещением обычных кнопок. Вопрос использования изображений рассмотрен в отдельной статье Представления изображений в Android.

Полагаю, особого труда у Вас не составит самостоятельно поместить в таблицу две строки TableRow : одну для кнопок (btnEn, btnRu) и одну в качестве «разделителя». Ну и в заключении создадим метод changeLocale(Locale locale).

Теперь, когда интерфейс определен и ресурсные файлы подготовлены, осталось только разработать метод определения локализованных надписей интерфейса (changeLocale) и к кнопкам подключить соответствующие обработчики событий. Для этого откроем основной класс приложения MainActivity и внесем в него дполнительный код, представленный ниже :

В методе onCreate к кнопкам btnRu и btnEn подключены соответствующие обработчики событий. При нажатии на одну из кнопок в «консоль» выводится сообщение, формируется объект локализации и вызывается метод changeLocale. В методе changeLocale выполняется определение текущей Locale, после этого выполняется чтение соответствующего ресурсного файла и локализуются надписи интерфейса.

«Консоль» сообщений

Чтобы открыть консоль сообщений работающего приложения необходимо нажать вкладку Run, которая появляется после первого старта.

После старта Вы должны увидеть интерфейс приложения, представленный на следующем скриншоте. Нажатием на верхние кнопки текстовые строки интерфейса переводятся на соответствующий язык локализации.

Локализация даты и времени

Для проверки функционирования локализации даты и времени ниже представлен соответствующий метод. Здесь все тривиально просто. Обратите только внимание на импорт класса Calendar.

Вызвав printCurentDateTime из метода changeLocale в консоль будут выведены следующие сообщения о дате и времени для двух различных языков локализации :

Какой язык и среду выбрать для разработки на Andro >15.02.2020, 12:53. Просмотров 3199. Ответов 14

15.02.2020, 12:53

Какой язык выбрать для разработки под Android?
Всем привет! Я канешно ни в одном месте не разработчик приложений под андроид, Хочу.

Какой начать учить язык для разработки на Android?
Какой начать учить язык для разработки на андроид. И какую среду разработки Вы посоветуете, какую.

Какой язык лучше подойдет для разработки под Android?
В общем, меня последнее время мучает проблема монетизации программирования. Я понял что андроид.

Язык программирования для Android какой выбрать
Привет всем, есть две интересных идеи, хочу два проекта сделать на android, проблема в том что я не.

Посоветуйте лучшую среду для разработки под Android
лучшую — имею ввиду гибкость и мощность. ну, к примеру часто современная среда предоставляя.

15.02.2020, 13:04 2 15.02.2020, 13:08 [ТС] 3 15.02.2020, 13:14 4

В теме обязательно нарисуется кто-то, который заявит — о, Xamarin это круто и в тренде.
Но я, как задрот этого раздела, могу сказать, что темы в вопросами по xamarin появляются очень, очень редко и как правило в них никто не отвечает.
Это говорит о «популярности» этой среды. Так же найдутся поклонники PhoneGap и Titanium, но их ничтожно мало в сравнении с java + android studio.

Опять же, если бы гугл двигал что-то кроме этой ide, наверное на сайте об этом было бы сказано.
Люди замерли в ожидании релиза 2.0 версии с новым эмулятором.

ps: да, я категоричен

2. Swift

Swift – язык, разработанный компанией Apple и предназначенный для разработки приложений под iOS и OS X. Swift заимствовал довольно многое из C++ и Objective-C.

Платформа: iOS, macOS, watchOS и tvOS
Основная IDE: Xcode
Обучающий курс: Калькулятор на Swift

3. HTML5/JavaScript

JavaScript — прототипно-ориентированный сценарный язык программирования. Наиболее широкое применение нашел в браузерах как язык сценариев для придания интерактивности веб-страницам, а также в кроссплатформенных фреймворках (React Native, Ionic, Sencha и т.п.).

Платформа: iOS, Android, Tizen и практически любая другая
Основная IDE: Eclipse, блокнот Notepad++
Обучающий курс: зависит от фреймворка

C# — объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework. В области разработки мобильных приложений и используется во фреймворке Xamarin.

Платформа: iOS, Android, Windows 10
Основная IDE: Visual Studio
Обучающий курс: Приложения на Xamarin

5. Objective-C

Objective-C – компилируемый объектно-ориентированный язык программирования корпорации Apple, построенный на основе языка C и парадигм Smalltalk. Язык был создан Брэдом Коксом в начале 1980 и сейчас уже морально устарел, его заменяет новый и более простой Swift. Тем не менее, еще 3-5 лет разработчики на Objective-C будут очень востребованы на рынке.

Платформа: iOS, macOS, watchOS и tvOS
Основная IDE: Xcode
Обучающий курс: Разработка iOS-приложений

6. Python

Строго говоря, Python не является языком мобильной разработки, а больше используется в веб-проектах. Однако, как все мы знаем, в ближайшем будущем боты заменят приложения, а с помощью Python вы как раз и сможете их создавать + язык широко используется и в других областях, например, в машинном обучении. К тому же он легко постигаем новичками, у него много библиотек, синтаксис легко читаемый и довольно аккуратный код.

Платформа: боты
Основная IDE: Eclipse, Visual Studio, PyCharm
Обучающий курс: Разработка на Python с нуля

15.02.2020, 13:14
15.02.2020, 13:32 [ТС] 5
15.02.2020, 13:39

мне кажется что с# и джава очень похожи, часто одни и теже вещи называются просто разными словами, но общего у них очень много

к примеру — я никогда не писал на с# и не изучал спеки, но с первой попытки сдал форумный тест на C# Junior Developer на 65% :D никуда не подглядывал

отдельно хочу сказать насчет code conventions
некоторых пишущих на джаве жутко бесит сишный стиль форматирования кода, а особенно фигурные скобки с новой строки ]:->

Языки для мобильной разработки

Если вы хотите написать мобильное приложение, вам нужно знать язык программирования. Но может оказаться трудным выбрать лучший язык (или языки) для проекта. Есть много вариантов, и в этом посте я помогу вам сузить их, чтобы вы могли выбрать лучший.

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

Начнем с некоторых языков, с которыми вы, возможно, уже знакомы.

Языки Android

Согласно индексу TIOBE, Java является самым популярным языком программирования по состоянию на июнь 2020 года. Если вы хотите разрабатывать приложения для Android, скорее всего, вы будете придерживаться Java. У него есть большое и развитое сообщество разработчиков, и это означает, что вы сможете легко получить техническую поддержку и помощь.

Итак, когда вы разрабатываете программу для мобильных устройств с помощью Java, вы можете придумать любое приложение, о котором вы можете подумать. Единственными ограничениями будут ваше воображение и уровень ваших знаний Java.

Kotlin

Kotlin был спроектирован и разработан компанией JetBrains, чешской компанией, известной своей популярной IDE, IntelliJ IDEA. Недавно команда Android от Google объявила, что официально добавляет поддержку языка программирования Kotlin.

Kotlin был разработан для решения некоторых проблем на Java. По словам фанатов языка, синтаксис Kotlin проще, чище и приводит к меньшему раздуванию кода. Это поможет вам больше сосредоточиться на решении актуальной проблемы, а не на сложном синтаксисе. Кроме того, вы можете использовать Kotlin и Java вместе в одном проекте, и это делает его действительно мощным.

Языки iOS

Swift

Если вы хотите разработать для iOS, Swift может стать для вас подходящим языком. Внедренный в 2014 году и объявленный открытым исходным кодом в 2015 году, Swift быстро покоряет мобильных разработчиков. Он очень популярен, особенно среди новых начинающих разработчиков iOS.

Apple добавила некоторые замечательные функции для языка, такие как упрощенный синтаксис, возможность легко определять ошибки программиста и т.д. Огромные усилия Apple по продвижению Swift явно указывают на то, что она хочет, чтобы этот новый язык стал основным языком программирования для экосистемы приложений.

Objective-C

Objective-C был оригинальным языком разработки для iOS. Хотя недавно введенный язык Swift является будущим развития iOS, многие продвинутые проекты все еще полагаются на Objective-C. Таким образом, переход от Objective-C к Swift ожидается несколько медленным, и вам может понадобиться оба из них для некоторых проектов, по крайней мере, пока.

Межплатформенные языки

JavaScript

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

Сегодня существует несколько инфраструктур JavaScript, специально предназначенных для мобильных платформ разработки, таких как Ionic 2 и React Native. С помощью этих фреймворков и библиотек очень легко разрабатывать кросс-платформенные мобильные приложения. Это означает, что вам нужно написать только одну версию приложения, и она будет работать на iOS или Android.

TypeScript


TypeScript — это надмножество JavaScript и обеспечивает лучшую безопасность, добавляя необязательную статическую типизацию. Он также обеспечивает лучшую поддержку для разработки крупномасштабных приложений. Разработанный и поддерживаемый Microsoft, TypeScript позволяет разработчикам писать кросс-платформенные мобильные приложения с использованием таких фреймворков, как NativeScript.

Другие языки

C#

C# — это язык Windows Mobile. Он очень похож на C ++ и Java. Microsoft применила некоторые функции Java для упрощения своей архитектуры, сохраняя при этом дизайн похожий на C ++. Он также имеет большое и активное сообщество разработчиков, которые всегда дружелюбны и полезны.

C является вторым по популярности языком в индексе TIOBE, и, как и Java, его сообщество полно опытных разработчиков, которые могут предложить вам ценные советы о том, как писать код без ошибок.

Созданный Dennis Ritchie, работая в Bell Labs, C — широко распространенный и мощный язык, который позволяет вам напрямую манипулировать низкоуровневыми операциями компьютера. Если вы хотите использовать Android NDK (Native Development Kit), вам нужно будет ознакомиться с языком C.

Если вы знакомы с C, вам действительно понравится читать и писать код на C ++. C ++ — это расширение C, с более высокоуровневыми функциями и поддержкой объектно-ориентированного программирования. C ++ также является любимым языком разработчиков Android NDK. Вы можете использовать C ++ для разработки приложений для Windows Mobile. C ++ идет впереди вместе с Java в области разработки программного обеспечения, и его действительно стоит освоить.

Python

Python — еще один популярный язык, который легко усвоить и легко читать. Создатели языка приложили дополнительные усилия, чтобы синтаксис был максимально простым и понятным. Это действительно помогает начинающим разработчикам поддерживать высокий уровень производительности с первого дня. Если вам удобно писать код Python, вы можете использовать такие фреймворки, как Kivy, для разработки кросс-платформенных мобильных приложений.

Ruby — это объектно-ориентированный язык сценариев, созданный под влиянием Ada, C ++, Perl, Python и Lisp. RubyMotion — отличная платформа для разработки нативных и кросс-платформенных мобильных приложений в Ruby. Изучить Ruby довольно просто, благодаря своему элегантному синтаксису, который фокусируется на простоте и производительности.

Как классифицировать языки?

Мобильные приложения могут быть сгруппированы в три категории: нативные, гибридные и кросс-платформенные. Нативные приложения могут полностью использовать все возможности и функции ОС, и они являются самыми быстрыми, когда дело доходит до производительности. Однако вам необходимо поддерживать разные кодовые базы для разных мобильных платформ, поскольку каждая платформа использует разные языки программирования.

Например, платформа Android использует Java плюс C/C++ для разработки собственных приложений. Платформа iOS от Apple полагается на Objective-C и Swift как на родные языки. C# используется платформой Windows Mobile для кодирования собственных приложений. Все эти родные языки программирования приложений скомпилированы, а не интерпретируются.

Гибридные мобильные приложения на самом деле являются веб-сайтами, которые также предназначены для работы с мобильными устройствами. Пользователь может получить к ним доступ через мобильный браузер, как если бы они посещали веб-сайт на настольном компьютере. Комбинация HTML5, CSS и JavaScript является очевидным выбором, если вы хотите разрабатывать веб-приложения.

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

React Native и NativeScript являются популярными нативными межплатформенными платформами. Если вы хотите узнать больше об этом, ознакомьтесь с нашим полным курсом для новичка или несколькими нашими учебниками.

Сравнение возможностей

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

Нативный Android

Если вы хотите писать код для нативного Android, то Java и Kotlin — ваш очевидный выбор. Поэтому давайте посмотрим на них.

Null безопасность

Kotlin лучше контролирует ссылки Null, так что известные ошибки NullPointerException (распространенные на Java) намного проще устранить. Это сокращает время разработки и повышает производительность программистов.

Согласованность

Хотя Java поддерживает одновременные операции, соответствующий код может сильно пострадать от проблем с читабельностью и поддержкой. Котлин решает эти проблемы с помощью Coroutines. Полученный код легко читается и максимально понятен.

Система типов

Система типов Java несовместима, и это иногда может привести к путанице. В частности, примитивные типы, такие как integer, boolean и т.д., должны обрабатываться как особые случаи. Напротив, у Kotlin есть относительно простая и универсальная система типов, которая минимизирует ошибки программиста.

Поддерживаемые стили программирования

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

Какой из них выбрать?

В двух словах, кажется, что Kotlin лучше, чем Java, но это может занять некоторое время для полной трансформации. Одна из проблем заключается в том, что программисты используют шаблоны мышления, применяемые в Java. Другим является то, что Kotlin — новый язык, и некоторые функции все еще экспериментальны.

Во всяком случае, Google ясно объявил, что они будут предлагать полную поддержку Kotlin. Фактически, Android Studio, официальная Android IDE, теперь полностью поддерживает Kotlin. Новые возможности и улучшения постоянно добавляются в Котлин. В течение следующих нескольких лет мы переживаем переходный период от Java к Kotlin, по крайней мере, в разработке на базе Android.

Нативная iOS

Objective-C и Swift — это два варианта, которые вы имеете для разработки под iOS. Итак, давайте посмотрим на особенности каждого из них.

Синтаксис

У Swift есть более простой и понятный синтаксис, который помогает программистам достичь своих целей с минимальным количеством LOC (Lines Of Code). Это также помогает уменьшить ошибки программиста и облегчает исправление ошибок.

Управление памятью

Swift явно бьет Objective-C, когда дело доходит до управления памятью. Swift обеспечивает более надежные механизмы управления, позволяя программистам избегать нежелательных утечек памяти.

Производительность

Выполнение кода Swift намного быстрее, чем для Objective-C. Это явно приводит к более быстрой производительности приложений и улучшению пользовательского интерфейса.

Поддерживаемые стили программирования

В отличие от Objective-C, Swift имеет встроенную поддержку функционального программирования. Поэтому разработчикам не нужно ограничиваться какими-либо заранее определенными стилями программирования. Это помогает разработчикам ясно понять проблему и придумать лучшее решение.

Какой из них выбрать?

Точно так же, как Kotlin медленно заменяет Java в нативной разработке под Android, Swift, похоже, наверняка преуспеет в разработке нативных приложений под iOS, вынуждая Objective-C уйти в отставку. Apple уже начала обширную поддержку Swift, и в будущем она станет еще лучше. Как и разработчики Android, разработчики iOS также переживают на данный момент переходный период.

Хотя доступно несколько инструментов миграции кода, может быть невозможно полностью и без проблем преобразовать проекты Objective-C в Swift. Иногда могут потребоваться определенные обходные пути, и для этого может потребоваться глубокое знание Objective-C. Поэтому лучшей стратегией является отдать приоритет Swift и немного изучить Objective-C только тогда, когда это абсолютно необходимо. Кроме того, вам необходимо следить за последними событиями и тенденциями Swift.

Кросс-платформенные приложения

JavaScript (в сочетании с другими технологиями HTML5) является наиболее используемым кросс-платформенным мобильным языком разработки. Существуют также другие языки, такие как Python и Ruby, но JavaScript имеет самый широкий спектр поддержки.

Если вы уже не являетесь большим поклонником Ruby или Python, и вы хотите попробовать передовые разработки мобильных приложений с этими языками, вы должны придерживаться JavaScript или его расширения — TypeScript.

Заключение

Выбор языка мобильной разработки может быть сложным, если вы не понимаете особенностей каждого из них, а также текущих тенденций в отрасли. С учетом этих знаний, однако, легко понять, что выбор языка в значительной степени зависит от конкретной платформы разработки мобильных приложений.

Я уверен, что теперь у вас есть более четкое представление о языках разработки мобильных приложений и что мы можете сопоставить актуальность их функций с последними тенденциями развития. Так что просто начните кодировать свое следующее приложение с полной уверенностью!

Если вам нужна помощь в начале работы с новым языком, ознакомьтесь с некоторыми учебными и видеокурсами, или с некоторыми другими нашими статьями о разработке под мобильные устройства!

Топ-3 среды разработки для Android

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

Популярные среды разработки

Допустим, вы хотите создать графическую картинку. Для этого понадобится редактор (Paint, Adobe Photoshop и пр.). Аналогичным способом пишутся проги для Android. Чтобы спроектировать приложения под ОС Android, необходимо специальное программное обеспечение — фон, на котором нужно прописывать коды IDE. Рядом в окошке в реальном времени будет отражаться экран смартфона, на котором вы будете видеть визуальное преображение программы.

На сегодняшний день самыми востребованными средами являются:

Каждая IDE обладает уникальными характеристиками. О них подробно ниже.

Eclipse

Это бесплатная IDE, разработанная некоммерческой компанией Eclipse Foundation. Эта программа является базой, которая регулирует процессы создания приложений. Преимущества Эклипс:

  • интерфейс переведен на грамотный русский язык (документация прилагается);
  • отлично «гоняет» на компьютерах с низкой производительностью;
  • имеет дополнительные функции (для серверной работы и анализа базы данных);
  • может подключаться к модулям;
  • может работать в групповом режиме (когда проект создают несколько человек одновременно).

Эклипс стала популярной несколько лет назад и по-прежнему занимает лидирующие позиции. Хотя после выхода Андроид Студио (2014 год) Google решил перевести сотрудничество с Eclipse на «второй план».

IntelliJ Idea

Данную программу разработала российская компания JetBrains. Подобно Эклипс, эта среда позволяет создавать приложения и программы на нескольких программных языках. Также IntelliJ Idea не перегружает ПК. Чем она примечательна:

  • более оперативная отладка значений;
  • предусмотрен автозаполнитель методов;
  • есть рефакторинг;
  • интерфейс более понятный и лаконичный;
  • подходит для тех, кто программирует на Java.

Единственный недостаток – за IntelliJ Idea нужно платить. Хотя тот, кто понимает ситуацию на рынке, не будет считать это минусом.

Android Studio

Google никогда не стоит на месте, и совсем недавно компания принялась за разработку авторской среды для Андроид. Она создала собственную IDE на базе IntelliJ Idea.

Принципиальных отличий между программами нет, так как нововведений здесь немного. Тем не менее, имя разработчика позволило программе стать достойным конкурентом двум предыдущим IDE за считанные месяцы. Единственный недостаток программы: недостаточное количество функций персонализации в кодовом редакторе и общих настройках.

Что выбрать

Вам стоит использовать Eclipse, если:

  • вы работаете на «слабеньком» ПК (оперативка 1 ГБ);
  • вы пишете программы на двух и более программных языках;
  • вы не знаете английский.

Последний пункт, конечно, спорный. Причина очевидна: любой успешный программист обязан владеть английским языком, хотя бы для того, чтобы разбираться в иностранной документации. Но если вы новичок в IT – Эклипс создан для вас.

IntelliJ Idea и Android Studio подходит для тех, кто:

  • разрабатывает программы на двух и более языках;
  • работает на сравнительно мощном ПК (оперативка от 2 ГБ);
  • пишет проги только для ОС Андроид.


Учитывая то, что Андроид Студио – это официальное детище Google, созданное для ОС Android, обучаться вы будете именно в этой IDE. В целом, приложение для Андроид можно создать на любом языке. И перечисленные среды разработки позволяют это сделать.

Я хочу стать Andro >Статьи

К тому же не стоит выпускать из внимания тот факт, что «зелёный робот» является лидером по популярности среди мобильных операционных систем. Это говорит о том, что, программируя под Android, вы будете иметь широкую аудиторию, которая впоследствии может принести прибыль. В общем, Android — своеобразный «оазис» для разработчиков. Поэтому мы подготовили для вас специальную подборку языков программирования, а также сред разработки для этой ОС.
Внимание, небольшое наставление новичкам
: программирование на Android может поначалу показаться сложным или слишком монотонным. Совет: предварительно рассмотрите ссылки на полезные документации прежде чем браться за дело, и тогда программирование на Android не станет для вас проблемой.

Java — основное средство для Android-разработчика

Google на данный момент официально поддерживает достаточно мощную среду разработки Android Studio, которая собрана на основе Intellij IDEA от JetBrains. Также не стоит забывать про очень подробную документацию от Google, в которой разбирается всё: от match_parent и wrap_content до конструкторов, констант и основных методов класса JavaHttpConnection — обязательно стоит почитать.

Кроме того, не стоит забывать о Eclipse — очень популярной среде для Java-программистов. С официальным плагином ADT от Google этот тулкит станет мощным и легковесным оружием в ваших руках. Но ребята из Маунтин-Вью ещё с лета прошлого года перестали поддерживать Eclipse, уступив место свежей Android Studio. Рекомендуется использовать на слабых ПК.

Своё путешествие в мир Android рекомендуется начинать именно отсюда: любой androi разработчик знаком с Java и понимает все немалочисленные плюсы и минусы этого языка.

С++ — мощный инструмент в руках мастера

За всё существование Android было создано немало фреймворков и средств разработки для C++. Особенно хочется выделить широко известный Qt и IDE QtCreator, позволяющие разрабатывать кроссплатформенные приложения для Windows, Windows Phone, Windows RT, iOS, SailfishOS и Android (когда-то в этот список входил ещё и Symbian). Кроме того, вы получаете удобную библиотеку контейнеров, алгоритмов и шаблонов Tulip, впитавшую в себя всё лучшее из Java и Android. Ну и, наконец, вы получаете множество различных QT-модулей для высоко- и низкоуровневой работы с системой. Ваш покорный слуга кодит именно в связке C++ и Qt.

В прошлом году на конференции Windows: The Next Champter было уделено широкое внимание достаточно популярной среде разработки Visual Studio 2015. Одним из главных нововведений стала поддержка разработки приложений как под Windows Phone, так и под Android — Microsoft пыталась хоть как-то увеличить количество приложений для своей ОС.

Нельзя также не упомянуть о том, что официальный Android Studio стал поддерживать NDK. С помощью NDK вы сможете использовать при работе с Android графику OpenGL. Если вам нужна быстрота и эффективность — выбирайте NDK! Этот способ разработки отлично подойдёт для игровых движков, требующих большой производительности.

Android разработка на C или C++ может показаться более простой чем на Java, но, несмотря на то, что язык предлагает вам полную свободу производимых действий и не ограничивает вас в ваших шагах, он имеет некоторые специфические особенности, на изучение которых уйдёт немало времени — недаром C++ сравнивают с нунчаками (превосходным оружием, которое, к сожалению требует огромного мастерства). Тем не менее разработка приложений под Android на C и C++ может оказаться занятным делом.

Другие языки

Теперь самое время рассказать о других менее популярных, но тоже интересных языках и фреймворках для них. Однако по многим причинам вы не сможете добиться такого успеха как с Java и C++.

Corona (LUA Script)

Подойдёт для создания игр и простых приложений
Если вам по каким-то причинам не хочется изучать Java или разбираться в построении интерфейса через XML, то вы можете выбрать для себя данное IDE. Corona — это достаточно легковесная среда разработки, код в которой необходимо писать на достаточно лёгком LUA (любители Pascal оценят по достоинству).

Данный тулкит поможет вам при написании простых 2D-игр, для коих здесь присутствуют библиотеки для 2D=объектов, звуков, сети и игрового движка. Созданные игры работают с OpenGL, что означает высокую эффективность. Отлично подходит для новичков, возможно, именно на нём вы сможете создать своё первое мобильное приложение на Android!

Adobe PhoneGap (HTML5, JavaScript, CSS)

Подойдёт для создания нересурсоёмких приложений
Если вы уже знакомы с HTML, CSS и JavaScript, в качестве альтернативы вы можете попробовать PhoneGap. Это IDE позволит собирать полноценные приложения, разработанные на вышеупомянутых языках программирования и разметки.

На самом деле готовые приложения из PhoneGap представляют из себя простейшие WebView, оживлённые при помощи JavaScript. При помощи разнообразных API вы сможете использовать различный функционал устройства прямо как на нативных приложениях. Что интересно — приложения компилируются на сервере и затем уже доступны для использования на iOS, Android, Windows Phone, Web OS и BlackBerry OS. С такой широкой кроссплатформенностью разработка приложений может значительно ускориться.

Fuse (JavaScript и UX)

Подойдёт для создания как простых, так и сложных приложений
Когда люди говорят о средствах разработки под Android, они часто вспоминают Fuse. Этот инструмент — один из удобнейших в своём роде, и он может представить перед разработчиком широкий спектр возможностей и преимуществ.

Основная логика Fuse-приложений строится на JavaScript — простом и понятном языке с низким порогом вхождения. Интерфейсный же фундамент представляет UX-разметка — интуитивно понятная каждому. Ну а «плюшки» среды позволят вам применять изменения прямо во время работы приложения на вашем устройстве или эмуляторе — прямо как в Android Studio 2.0 и выше. С помощью Fuse разработка приложений для Android может оказаться несложной и приятной.

На чем пишут приложения под Android

Операционная система (ОС) Android является самой популярной платформой для мобильных устройств с многомиллионной армией поклонников по всему миру. Удобство, универсализм, большой выбор поддерживаемых языков и средств разработки, множество мобильных устройств с ОС Android, количество которые увеличивается невероятно быстро, делают эту платформу такой востребованной в среде разработчиков.

И именно из-за этой популярности все большее количество людей начинает задумываться над тем, как делают приложения под эту операционную систему, какие языки программирования для этого необходимо знать и какими навыками обладать. Ответам на эти вопросы, связанные с написанием программ под Android, выбором языка и среды разработки, и посвящена данная статья.

На каких языках пишут приложения для Android

Официальным языком разработки разноплановых приложений любого уровня сложности для устройств, которые работают под управлением ОС Android, является знаменитая Java. Этот язык неоднократно признавался одним из самых популярных, имеет массу достоинств и возможностей, в свое время позиционировался корпорацией Google, как лучшее средство для написания программ под Android, и удерживает свои лидирующие позиции и по сегодняшний день.

С помощью этого языка можно и создавать новые программы, и переделывать уже разработанные ранее, работая с их исходным кодом. К достоинствам Java можно отнести большой выбор справочных материалов и технической документации от Google, поэтому с поиском информации необходимой для освоения данного языка точно проблем не возникнет.

Из недостатков Java можно выделить его сложность для изучения и понимания, что отталкивает многих программистов, которые только начинают свою трудовую деятельность в этой отрасли. Однако при должном отношении изучить Java сможет каждый, тем более код, написанный на этом языке и с соблюдением основных правил оформления, отлично читается.

В 2020 году был представлен общественности язык программирования Kotlin, который сразу же окрестили вторым официальным после Java. Он приглянулся многим программистам, поскольку более простой в изучении, поддерживает работу с популярной IDE Android Studio, активно развивается, очень похож на Java и совместим с этим языком, может похвастаться более простой компиляцией без прекращения из-за мелких недочетов и меньшим boilerplate-кодом.

Большая часть экспертов при ответе на вопрос «на чем разрабатывают приложения под Andro >создавать Android-приложения , и его используют зачастую начинающие разработчики, поскольку язык относительно простой.

С помощью языка LUA и Corona SDK можно создавать кроссплатформенные программы. Еще одним популярным вариантом является PhoneGap, позволяющий используя хорошо знакомые web-разработчикам JavaScript, HTML и CSS создавать неплохие кроссплатформенные приложения.

Как выбрать подходящую среду разработки?

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

На протяжении многих лет основной интегрированной средой разработки (IDE) для Android считалась Eclipse, поддерживающая Java с Android SDK и некоторые другие языки. Однако с появлением Android Studio данная среда утратила свою актуальность, и с каждым годом к ее помощи прибегает все меньшее количество программистов. Android Studio является официальной IDE, созданной разработчиками корпорации Google для написания приложений под Android.

Выбор среды разработки мобильного приложения зачастую зависит от поддерживаемых языков, и здесь данная IDE является лучшей, поскольку поддерживает сразу 3 самых популярных языка Java, Kotlin и C++. По удобству, набору инструментов, надежности и практичности, данная среда неоднократно признавалась лучшей и сейчас является самой популярной среди большинства разработчиков.

Вместе со средой Android Studio идет несколько очень полезных инструментов и модулей, расширяющих его возможности. Одним из них является эмулятор AVD Manager, который позволяет запускать созданные Android-приложения на обычном компьютере, и проверять их работу без необходимости установки на Android-устройства. IDE Unity 3D предназначена для разработки игр, причем делать это здесь легче и быстрее, чем в предыдущей среде.

Для создания игровых приложений также подходят Unreal Engine и GameMaker: Studio. AIDE или Android IDE отличается от других сред тем, что работает на устройствах с ОС Android, поэтому с ее помощью можно программировать приложения прямо на планшете или смартфоне. Среда разработки под лаконичным названием B4A позволяет создавать программы под Android на языке BASIC, используется крайне редко. Создавать приложения также можно в IntelliJ IDEA, Andyroid, Cordova, Blustacks, PhoneGap и других средах, которые применяются не так уж и часто.

Самой популярной средой разработки является Andro >KitApp . Наша команда поможет реализовать любую вашу идею и разработает приложение под Android любой сложности!

Как сделать приложение для Andro >

Платформа Android открытая, поэтому каждый может написать своё приложение и распространять его через каталоги программ. Все инструменты бесплатны.

Язык программирования для мобильной разработки на Android очень простой — это Java. Сейчас Google активно продвигает Kotlin как язык, который сможет заменить Java. Приложения пишут и на C++.

Создание простейшего приложения состоит из нескольких этапов:

    проект в Andro >А пока мы описываем азы, студенты курса «Профессия Мобильный разработчик» уже получают деньги за свои приложения.

Пишет про разработку в Skillbox. Работал главным редактором сайта «Хабрахабр», ведет корпоративные блоги.

Необходимые инструменты

Первым делом установите программу Android Studio. Это официальная среда разработки (IDE) для Android, она работает на Windows, macOS и Linux. Хотя при разработке программ для Android можно использовать и другие среды, кроме Android Studio.

Если на компьютере не установлены Andro > Android Studio автоматически скачает их. Android SDK — это среда программирования, в которую входят библиотеки, исполняемые файлы, скрипты, документация и т.д.

Andro > .apk. Он содержит всё необходимое для установки приложения на Android-устройство.

Полезно установить и эмулятор Andro >Android Studio.

Когда все инструменты установлены, можно создать первый проект. Но сначала нужно разобраться с основными понятиями.

Из чего состоит приложение
на Andro >Android-приложение состоит из четырёх компонентов. Каждый компонент — это точка входа, через которую система или пользователь может получить доступ.

  1. Активность (activity) — элементы интерактивного пользовательского интерфейса.
    Одна активность задействует другую и передаёт информацию о том, что намерен делать пользователь, через класс Intent (намерения). Активности подобны веб-страницам, а намерения — ссылкам между ними. Запуск приложения — это активность Main.
  2. Сервис (service) — универсальная точка входа для поддержания работы приложения в фоновом режиме.
    Этот компонент выполняет длительные операции или работу для удалённых процессов без визуального интерфейса.
  3. Широковещательный приемник (broadcast receiver) транслирует нескольким участникам намерения из приложения.

Поставщик содержимого(content prov >Теперь попробуем сделать своё приложение для Android.

Создаём Android-приложение
в Andro >Шаг 1

Выбираем название приложения, домен компании, путь к проекту и название пакета. Указываем, включить ли поддержку опциональных языков программирования C++ и Kotlin.

Шаг 2

Задаём одну или несколько целевых платформ для сборки. Для этого используется SDK и AVD, менеджер виртуальных устройств Android. Инструмент позволяет устанавливать в SDK пакеты, которые поддерживают несколько версий ОС Android и несколько уровней API (интерфейсов программирования приложений).

Чем ниже версия Android, тем больше устройств, на которых приложение запустится. Чем выше версия, тем богаче функциональность API.

Шаг 3

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

Шаг 4

После нескольких минут сборки Android Studio открывает интерфейс IDE. Здесь три основных момента.

Если выбрать в выпадающем меню вид Andro >app > java > ru.skillbox.skillboxapp > FullscreenActivity. При создании проекта мы указали вместо активности Main полноэкранную активность.

Далее можно посмотреть файл app > res > layout > activity_fullscreen.xml. Это XML-файл с макетом для UI нашей основной активности.

Наконец, третий важный файл app > manifests > AndroidManifest.xml описывает фундаментальные характеристики приложения и определяет все его компоненты.

Содержимое манифеста

Запускаем на реальном устройстве

Созданное нами приложение — это одна активность, которая запускается в полноэкранном режиме и не имеет графических элементов.

Запускаем на Android-устройстве или в эмуляторе.

Смартфон или планшет для этого подключаем в режиме USB-отладки, которая активируется в Настройках разработчика в меню Настройки.

Для запуска в эмуляторе нажимаем в Andro >Run в меню Run (Shift+F10). Выбираем подходящее устройство и версию ОС, портретную или ландшафтную (альбомную) ориентацию.

Создаём простой пользовательский интерфейс

Пользовательский интерфейс Andro >макетов (layouts, объекты ViewGroup) и виджетов (объекты View). Макеты управляют расположением дочерних виджетов на экране. Сами виджеты — это непосредственно компоненты UI: кнопки, текстовые поля на экране и т.п.

Интерфейс активностей создаётся в Android Studio в редакторе макетов (Layout Editor) и хранится по большей части в XML-файлах.

  1. Открываем файл app > res > layout > activity_fullscreen.xml.
  2. Добавляем на экран из палитры (Palette) виджеты перетаскиванием мышью.
  3. Например, берём текстовое поле (PlainText). Это виджет EditText, куда пользователь может вводить текст.
  4. Добавляем кнопки и другие нужные элементы.


Добавляем действия, активности и навигацию

Предположим, мы создали активность с текстовым полем и кнопкой «Отправить». После этого нужно написать, что конкретно будет происходить при нажатии кнопки «Отправить».

  1. Заходим в код app > java > FullscreenActivity.
  2. Добавляем метод SendMessage() в класс FullscreenActivity, чтобы при нажатии на кнопку вызывался этот метод.
  3. Создаём намерения (класс Intent) для перехода от одной активности к другой, новые активности, навигацию и всё остальное, что необходимо для приложения.

И, конечно, начинаем мечтать, как монетизировать приложение.

Общие правила
для Andro >Android-приложение живёт в собственной «песочнице», которая подчиняется правилам безопасности Linux:

  1. Каждое приложение — это отдельный пользователь в многопользовательской системе Linux.
  2. По умолчанию система назначает каждому приложению уникальный user >Из правил есть исключения:
  1. Возможно организовать для двух приложений общий user ID, так что они могут делиться файлами друг с другом.
  2. Приложение может запрашивать разрешение на доступ к контактам пользователя, SMS, содержимому накопителя, информации с камеры и другим данным.

Заключение

Детально все этапы разработки приложения объясняются на курсе «Профессия Мобильный разработчик». Участники 12-месячной программы учатся создавать приложения под Android и iOS. Кроме того, они получают полноценное портфолио разработчика и могут устроиться на работу в качестве junior-программиста.

Разработка под iOS и Android: рейтинг языков программирования

Вы хотите стать мобильным разработчиком, но не знаете какой язык программирования выбрать? На чем написать свое мобильное приложение для Android или iOS? Предлагаем вам наш рейтинг языков программирования для создания приложений.

1. Java

Java – строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle).

Платформа: Android, Android Wear
Основная IDE: Android Studio
Обучающий курс: Мобильная разработка под Android

Дополнительные материалы

Средние зарплаты разработчиков в США в 2020 году по языкам программирования.

Android — Выбор языка мобильного приложения в Android

Статья будет интересна таким же начинающим, как и я, которые хотят разобрать уже скомпилированный файл *.apk для внесения некоторых изменений (в большинстве случаев это будет русификация/украинизация приложений, т.к. поменять картинку можно любым архиватором), а потом обратно его скомпилировать для использования на устройстве. Вариант, как это сделать, конечно же, есть не один, но в этой статье мы остановимся на программе APKTool и ОС Windows. Для начала нам понадобятся программы, а именно:

1) С самого начала нам понадобится виртуальная машина Java. Скачать нужный нам вариант можно с сайта разработчиков. Выбираем систему, под какую нам нужна виртуальная машина, нажимаем «Download», окно с авторизацией просто закрываем, после чего либо начнется скачивание файла, либо внизу вручную его можно скачать.

2) Теперь нам еще нужно скачать APKTool. Сделать это, опять же, можно с сайта разработчика: обязательно качаем первый файл (он универсальный, вне зависимости от платформы) и либо второй, либо третий, либо четвертый файл, в зависимости от системы.

3) После того, как мы все скачали, нам нужно все проинсталлировать. С виртуальной машиной проблем не должно быть, все как обычные программы. Что б «инсталлировать» APKTool, нам нужно содержимое обоих архивов разархивировать в корень папки Windows (по умолчанию это C:\Windows\). В итоге у нас в папке Windows должны быть вот такие файлы (начиная с версии APKTool 1.3.1 файл mgwx.dll не нужен, эта dll-ка актуальна только для старых версий программы):

После того, как мы проинсталлировали все необходимые нам программы, можно приступать непосредственно к делу. Сразу хочу сказать, что тут много делается через командную строку, так что нужно уметь ею пользоваться. Для примера возьмем программу Nexus One Gallery3D. Следующие наши действия такие:

4) Открываем командную строку (можно через меню «Пуск», можно через «Выполнить»), в итоге должны получить вот такое окно:

Локализация приложения Android

Вопросам локализации приложений уделено немало места на страницах нашего сайта. Наиболее значимая статья, связанная с фундаментальными основами локализации, рассказывает о региональных стандартах, форматах представления числовых, денежных и временных значениях в различных странах, ресурсных файлах и форматах сообщений. Поэтому, в этой статье будет рассмотрен только вопрос локализации интерфейса Android приложений. Здесь на примере мы должны увидеть процесс формирования и использования ресурсных файлов.

На странице описания табличной разметки TableLayout был создан файл table.xml, в котором уже подключались свойства ресурсного файла strings.xml. В этой статье мы продолжим эту тему и рассмотрим следующие вопросы локализации приложений в среде разработки Android Studio :

  • создание ресурсных директорий;
  • создание ресурсных файлов;
  • локализация интерфейса;
  • динамическое подключение ресурсных файлов.

Ресурсные директории

Для локализации интерфейса, первое, что нам необходимо выполнить, это создать ресурсные файлы, которые хранятся в определенных ресурсных директориях. Создадим такие директории для языков локализации «ru» и «en». Для этого выделяем проект p02Layout, открываем контексное меню правой клавишей мыши и выбираем пункт меню New / Android Resource Directory. В открывшемся диалоговом окне в списке Available qualifiers выбираем пункт Locale и переносим его в правую часть Chosen qualifiers нажатием на кнопку с изображением «двух стрелок вправо».

В результате предыдущего действия интерфейс окна изменится и появятся другие компоненты и списки. Теперь необходимо в списке Language выбрать нужный язык. Прокрутка списка для выбора русского языка не дала нужного результата. Русский язык не был найден и представленная на скриншоте строка не была обнаружена, несмотря на то, что в последнем списке (Specific Region Only:) страна «RU: Russia» присутствует. Но после ввода символов «ru» при активности (нахождении фокуса) списка Language, сразу же появилась нужная запись и поле фильтрации в верхней части списка. Возьмите это на вооружение при поиске требуемого языка локализации. Наименование директории values-ru было сформировано студией автоматически после выбора языка локализации. Следующим шагом точно также была добавлена директория для английского языка «en».

Примечание : в проекте ничего не изменилось; как была одна директория res/values, так к ней ничего и не добавилось. Это специфика Android Studio – ничего личного, только проект.

Но если посмотреть на структуру проекта со стороны проводника, то Вы сразу же увидите добавленные ресурсные директории values-en, values-ru. Так что особых тревог быть не должно; все делаем правильно и ничего не пропало.

Примечание :
1. При создании ресурсных директорий не был использован регион из списка Specific Region Only. Т.е. была выделена запись Any Region. Но если появится необходимость разделить англичан и американцев, то необходимо будет выделить дополнительно соответствующую запись и создать для английского языка две директории : res/values-en-rUK и res/values-en-rUS. Дополнительный символ обозначения региона к наименованию страны Studio добавит самостоятельно (. -rUK, . -rUS). Не забудьте, что в этом случае в объекте локализации Locale также должен быть учтен регион/страна.
2. Локализовать можно не только строковые ресурсы, но и изображения. Так, например, при использовании национальных флагов, следовало бы дополнительно создать соответствующие директории res/drawable-en, res/drawable-ru, в которых будут храниться изображения, ориентированные на определенные регионы.

Ресурсные файлы

После определения ресурсных директорий необходимо добавить ресурсные файлы. Для этого опять же выделяем проект, вызываем контекстное меню правой клавишей мыши и выбираем New / Android Resource File. В открывшемся диалоговом окне опять же выбираем Language и переносим его в список Chosen qualifiers, как это было сделано на предыдущем шаге. В списке Language вводим требуемый язык, в результате чего Studio определит директорию размещения файла (Directory name). Теперь необходимо ввести наименование файла (File name) и нажать ОК. Скриншот отображает состояние после выбора языка локалилизации и определения наименования файла ресурсов string.xml.

В результате создания ресурсных файлов в структуре проекта будут добавлены записи в раздел res/values/strings. Помним, что простой strings.xml используется по умолчанию, если в системе не будет найден ресурсный файл приложения для соответствующего объекта Locale.

Ресурсные файлы

После выполнения двух предыдущих шагов были созданы ресурсные директории с файлами string.xml. То есть в трех разных директориях (values, values-en, values-ru) хранятся три файла с одинаковыми наименованиями strings.xml. В этом суть отличия локализации приложений Android. Теперь необходимо определить содержимое файлов так, чтобы ключевые наименования у них были одинаковыми. Эти ключевые наименования будут использоваться для определения заголовков меток и кнопок.

Листинг файла values-ru/string.xml

Листинг файла values-en/string.xml

Содержимое файла values/string.xml определим согласно англоязычного варианта локализации.

Локализация интерфейса

При локализации интерфейса необходимо к текстовым параметрам меток (android:text), полям ввода (android:hint) и кнопкам (android:text) подключить соответствующие ресурсные строки. Это можно сделать двумя способами.

Определение ресурсных значений в файле описания конфигурации

Простой способ связан с прямым определением соответствующих значений в файле описания интерфейса интерфейса. Для этого необходимо открыть файл table.xml, найти в описании компонент и связать его параметры с соответствующими ресурсными строками. Вот как это выглядит для метки и текстового поля определения учетной записи :

Текстовое значение метки tvLogin связали с ресурсной строкой «@string/lbl_login» (android:text), а подсказку текстового поля edLogin связали с «@string/hint_login» (android:hint).

Определение ресурсных значений в панели атрибутов компонента

Установить связь текстового значения компонента с ресурсным значением можно через интерфейс среды разработки Studio. Для этого необходимо выделить компонент и перейти к панели атрибутов. Здесь следует найти соответствующий параметр. На следующем скриншоте представлена выделенная строка текстового параметра компонента кнопки.

Сейчас у кнопки определено несвязанное текстовое значение Button. Можно в этой же строке ввести новое/необходимое значение; но можно и нажать на кнопку с изображением многоточия. В результате будет открыто окно выбора ресурсного значения. Здесь находим нужную строку в списке и нажимаем ОК.

Динамическое подключение ресурсных файлов

Для реализации динамического изменения локализуемых надписей интерфейса приложения проще всего в интерфейс добавить пару кнопок : одна из кнопок будет переводить интерфейс на русский язык, а другая – на английский. Конечно же, желательно, чтобы на кнопках были изображены соответствующие флаги. Но не будем сейчас усложнять задачу и ограничимся дополнительным размещением обычных кнопок. Вопрос использования изображений рассмотрен в отдельной статье Представления изображений в Android.

Полагаю, особого труда у Вас не составит самостоятельно поместить в таблицу две строки TableRow : одну для кнопок (btnEn, btnRu) и одну в качестве «разделителя». Ну и в заключении создадим метод changeLocale(Locale locale).

Теперь, когда интерфейс определен и ресурсные файлы подготовлены, осталось только разработать метод определения локализованных надписей интерфейса (changeLocale) и к кнопкам подключить соответствующие обработчики событий. Для этого откроем основной класс приложения MainActivity и внесем в него дполнительный код, представленный ниже :

В методе onCreate к кнопкам btnRu и btnEn подключены соответствующие обработчики событий. При нажатии на одну из кнопок в «консоль» выводится сообщение, формируется объект локализации и вызывается метод changeLocale. В методе changeLocale выполняется определение текущей Locale, после этого выполняется чтение соответствующего ресурсного файла и локализуются надписи интерфейса.

«Консоль» сообщений

Чтобы открыть консоль сообщений работающего приложения необходимо нажать вкладку Run, которая появляется после первого старта.

После старта Вы должны увидеть интерфейс приложения, представленный на следующем скриншоте. Нажатием на верхние кнопки текстовые строки интерфейса переводятся на соответствующий язык локализации.

Локализация даты и времени

Для проверки функционирования локализации даты и времени ниже представлен соответствующий метод. Здесь все тривиально просто. Обратите только внимание на импорт класса Calendar.

Вызвав printCurentDateTime из метода changeLocale в консоль будут выведены следующие сообщения о дате и времени для двух различных языков локализации :

Цукерберг рекомендует:  Креативные методологии и их применение в IT
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих