Программировать приложение для Android с точки зрения разработки для iOS намного проще, чем кажется. Kotlin, выпущенный Google для имитации популярности языка Apple с открытым исходным кодом, во многом похож на Swift. Эти сходства облегчают приобретение.

Сходства

Текстовые поля, UIButtons или UILabels лежат в основе интерактивного пользовательского интерфейса Apple. В Android TextFields - это EditTexts, UIButtons - это кнопки, UILabels - это TextView, что не следует путать с TextView в iOS. После того, как Стив Джобс купил конструктор интерфейсов Zerox Park, он заставил разработчиков Objective-C встраивать его в свою интегрированную среду разработки, чтобы было не только несколько способов программирования представлений, но и способы создания представлений. Android намного проще, но работает концепция MVC по связыванию ссылки с представлением.

Автоматический макет?

Хорошая новость заключается в том, что конструктор интерфейсов Android намного проще маневрировать, чем линейно-алгебраическая автоматическая компоновка Apple. На следующем изображении два объекта TextEdit расположены над кнопкой. Под кнопкой находится TextView, где добавление первого числа будет добавлено ко второму числу после нажатия кнопки добавления. Это простой способ продемонстрировать, как обрабатывать взаимодействие пользователя с пользовательским интерфейсом для достижения простого результата.

Интеграция этих сущностей требует нескольких дополнительных шагов в так называемых «Атрибутах», концепции, общей для разработчиков iOS.

Код

И последнее, но не менее важное - это код. С помощью кода, написанного на Kotlin, вы будете создавать ссылки из объектов, объявленных в коде, которые соответствуют уже изложенным представлениям.

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setSupportActionBar(toolbar)

        // Creating instances of widgets, i.e., button, edittext, textview
        var num1=findViewById<View>(R.id.firstNumEditText) as EditText
        var num2=findViewById<View>(R.id.secondNumEditText) as EditText

        var result=findViewById<View>(R.id.resultTextView) as TextView
        var addition=findViewById<View>(R.id.addButton) as Button

        addition.setOnClickListener(View.OnClickListener {
            result.text="Add="+(num1.text.toString().toInt()+num2.text.toString().toInt()).toString()

            Toast.makeText(this, result.text,Toast.LENGTH_LONG).show()
        })
    }

Какова разбивка каждого из этих объявлений?

В каждой из этих пяти переменных вы используете findViewById. findViewById Android - это автоматическое средство для создания ссылки на «ресурс» или представление. Чтобы установить тип ресурса, вы объявляете тип в квадратных скобках, но вы устанавливаете ссылочную ссылку, получая доступ к имени, которое вы присвоили в атрибутах, через точечный синтаксис в id. as действительно похож на Swift. Как видите, это способ «приведения» производного типа представления к определенному типу. Вы, наверное, теперь действительно хорошо читаете эти объявления:

  1. var num1 = findViewById ‹View› (R.id.firstNumEditText) как EditText
  2. var num2 = findViewById ‹View› (R.id.secondNumEditText) как EditText
  3. var result = findViewById ‹View› (R.id.resultTextView) как TextView
  4. var add = findViewById ‹View› (R.id.addButton) как кнопка

Программирование ссылочно связанных представлений

Последняя часть состоит в том, чтобы запрограммировать эти ссылочно связанные представления для совместной работы. setOnClickListener напоминает мне о закрытии в Swift, поэтому я не задаю никаких вопросов о том, как это работает внутри. Вы устанавливаете текстовое значение результата TextView как строковую версию следующего вычисления: число1 + число2. Остальное говорит само за себя (т.е. .toInt() или .toString() и т. Д.…).

Вуаля!

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

Вот кодовая база, если вы хотите проверить свой код с помощью кода в репозитории GitHub: https://github.com/ericgiannini/android_addition_app