Что обеспечивает возможность быстрой и дешевой разработки новых приложений
Кроссплатформа для мобильного приложения: как ускорить и удешевить разработку?
Авторизуйтесь
Кроссплатформа для мобильного приложения: как ускорить и удешевить разработку?
Технический архитектор «Леруа Мерлен»
Покупки в самых разных областях сегодня происходят онлайн. А пользовательская активность перетекает с сайтов в мобильные приложения. Поэтому часто основной упор в разработке делается на мобильные платформы.
У компании уже были мобильные приложения для iOS и Android, но дублирование логики домена, устаревший код и огромные затраты на поддержку обеих платформ создавали множество проблем. Чтобы повысить управляемость, гибкость и рентабельность, мы решили всё переписать. Специалистов у нас было меньше, чем обычно в команде разработчиков мобильных приложений в нашей отрасли, а это означало, что внедрение изменений займёт больше времени.
Представлялось два варианта ускорить процесс:
Мы выбрали второй вариант и начали искать подходящую технологию, которая обеспечивала бы безопасность, качество и стабильность наших приложений. Потребовалось время, чтобы найти кроссплатформенное решение с интеграцией пользовательского интерфейса. Нужен был разумный подход, и мы рассматривали Flutter и React Native.
17–19 декабря, Онлайн, Беcплатно
React Native уже использовался в других приложениях, поэтому эта технология в первую очередь попала в число претендентов. Но React Native не оправдал наших ожиданий из-за качества итогового продукта. Можно было бы создать приложение с использованием Flutter, но возникли проблемы:
Дальнейшие исследования показали, что лучше не использовать общий пользовательский интерфейс между мобильными платформами. Android и iOS имеют разные принципы руководства пользовательским интерфейсом, и для поддержки общего UI иногда требуется больше времени, чем занимает отдельная разработка.
Требовалось кроссплатформенное решение. Узнав про Kotlin Multiplatform Mobile, мы поняли, что это тот самый подход. Технология исключает дублирование бизнес-логики, обеспечивая производительность и безопасность собственного пользовательского интерфейса.
Использование Kotlin в продукте
Тестирование подхода KMM мы начали в тех частях приложения, которые использовались реже — это, например, соглашения с клиентами и формы обратной связи. Важно было понять, не возникнут ли проблемы, связанные с библиотекой.
В нашем приложении есть два типа запросов: с авторизацией и без. Запросы с авторизаций — самая сложная часть, поэтому мы начали экспериментировать с запросами, которые не требовали ни авторизации, ни работы с базой данных. В процессе переписывания модулей с самого начала разрабатывались новые пользовательские сценарии с KMM. Но и существующие были перенесены в KMM.
Перед написанием мультиплатформенного кода приложения для iOS и Android должны иметь схожую архитектуру с модулями или уровнями, имеющими идентичную логику. В наших приложениях было подобное разделение слоев:
Сначала мы ограничивались перемещением уровня данных, но затем стали перемещать всё остальное, включая бизнес-логику приложения. Единственные части KMM, которые мы не используем, — это пользовательский интерфейс и специфичные для платформы функции, такие как Apple и Google Pay.
Внутри библиотеки мы используем Ktor, Kotlin Serialization и Coroutines. Оболочка Rx применяется для адаптации платформы, но в будущем планируем использовать только Coroutines на Android и, если будет возможность использовать Async\Await на стороне iOS
Чтобы перенести функциональность корзины пользователя нужно было кэшировать данные с API и мы начали использовать библиотеку SQLDelight. Выполнив эту задачу, начали переносить в KMM более сложные функции приложения.
Достоинства и недостатки КММ
Недостатки, которые обнаружились при использовании Kotlin Multiplatform Mobile:
Далее выявленные достоинства.
Понятие базы и банка данных
Развитие вычислительной техники и появление емких внешних запоминающих устройств прямого доступа предопределило интенсивное развитие автоматических и автоматизированных систем разного назначения и масштаба, в первую очередь заметное в области бизнес-приложений Такие системы работают с большими объемами информации, которая обычно имеет достаточно сложную структуру, требует оперативности в обработке, часто обновляется и в то же время требует длительного хранения. Примерами таких систем являются автоматизированные системы управления предприятием, банковские системы, системы резервирования и продажи билетов и т д (рис. 1). Другими направлениями, стимулировавшими развитие, стали, с одной стороны, системы управления физическими экспериментами, обеспечивающими сверхоперативную обработку в реальном масштабе времени огромных потоков данных от датчиков, а с другой — автоматизированные библиотечные информационно-поисковые системы.
Это привело к появлению новой информационной технологии интегрированного хранения и обработки данных — концепции баз данных, в основе которой лежит механизм предоставления обрабатывающей программе из всех хранимых данных только тех, которые ей необходимы, и в форме, требуемой именно этой программе. При этом сама форма (структура данных и форматы полей, входящих в эту структуру) описывается на логическом, т. е. «видимом» из программы, уровне. Более того, поскольку различные программы могут по-разному «видеть» (а следовательно, и использовать) одни и те же данные, то система должна сделать «прозрачными» для программы все данные, кроме тех, которые для нее являются «своими».
Банк данных (БнД) — это система специально организованных данных, программных, языковых, организационных и технических средств, предназначенных для централизованного накопления и коллективного многоцелевого использования данных.
Под базой данных (БД) обычно понимается именованная совокупность данных, отображающая состояние объектов и их отношений в рассматриваемой предметной области. Характерной чертой баз данных является постоянство: данные постоянно накапливаются и используются; состав и структура данных, необходимых для решения тех или иных прикладных задач, обычно постоянны и стабильны во времени; отдельные или даже все элементы данных
могут меняться — но и это есть проявление постоянства — постоянная актуальность.
Система управления базами данных (СУБД) — это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Иногда в составе банка данных выделяют архивы. Основанием для этого является особый режим использования данных, когда только часть данных находится под оперативным правлением СУБД. Все остальные данные (собственно архивы) обычно располагаются на носителях, оперативно не управляемых СУБД. Одни и те же данные в разные моменты времени могут входить как в базы данных, так и в архивы Банки данных могут не иметь архивов, но если они есть, то в состав банка данных может входить и система управления архивами.
Проблемы совместного использования данных и периферийных устройств компьютеров и рабочих станций быстро породили модель вычислений, основанную на концепции файлового сервера — сеть создает основу для коллективной обработки, сохраняя простоту работы с персональным компьютером, позволяет совместно использовать данные и периферию.
В этом смысле главной отличительной чертой баз данных является использование централизованной системы управления данными, причем как на уровне файлов, так и на уровне элементов данных. Централизованное хранение совместно используемых данных приводит не только к сокращению затрат на создание и поддержание данных в актуальном состоянии, но и к сокращению избыточности информации, упрощению процедур поддержания непротиворечивости и целостности данных
Эффективное управление внешней памятью является основной функцией СУБД. Эти обычно специализированные средства настолько важны с точки зрения эффективности, что при их отсутствии система просто не сможет выполнять некоторые задачи уже потому, что их выполнение будет занимать слишком много времени. При этом ни одна из таких специализированных функций, как построение индексов, буферизация данных, организация доступа и оптимизация запросов, не является видимой для пользователя и обеспечивает независимость между логическим и физическим уровнями системы прикладной программист не должен писать программы индексирования, распределять память на диске и т. д.
Развитие теории и практики создания информационных систем, основанных на концепции баз данных, создание унифицированных методов и средств организации и поиска данных позволяют хранить и обрабатывать информацию о все более сложных объектах и их взаимосвязях, обеспечивая многоаспектные информационные потребности различных пользователей.
Основные требования, предъявляемые к банкам данных, можно сформулировать следующим образом:
— Многократное использование данных: пользователи должны иметь возможность использовать данные различным образом
— Простота: пользователи должны иметь возможность легко узнать и понять, какие данные имеются в их распоряжении
— Легкость использования: пользователи должны иметь возможность осуществлять (процедурно) простой доступ к данным, при этом все сложности доступа к данным должны быть скрыты в самой системе управления базами данных
— Гибкость использования: обращение к данным или их поиск должны осуществляться с помощью различных методов доступа.
— Быстрая обработка запросов на данные: запросы на данные, в том числе незапланированные, должны обрабатываться с помощью высокоуровневого языка запросов, а не только прикладными программами, написанными с целью обработки конкретных запросов (разработка таких программ в каждом конкретном случае связана с большими затратами времени). Пользователь должен иметь возможность кратко выразить нетривиальные запросы (в нескольких словах или несколькими нажатиями клавиш мыши). Это означает, что средство формулирования должно быть достаточно «декларативным», т. е. упор должен быть сделан на «что», а не на «как». Кроме того, средство обработки запросов не должно зависеть от приложения, т. е. оно должно работать с любой возможной базой данных.
— Язык взаимодействия конечных пользователей с системой должен обеспечивать конечным пользователям возможность получения данных без использования прикладных программ.
— База данных — это основа для будущего наращивания прикладных программ: базы данных должны обеспечивать возможность быстрой и дешевой разработки новых приложений.
— Сохранение затрат умственного труда: существующие программы и логические структуры данных (на создание которых обычно затрачивается много человеко-лет) не должны переделываться при внесении изменений в базу данных.
— Наличие интерфейса прикладного программирования: прикладные программы должны иметь возможность просто и эффективно выполнять запросы на данные; программы должны быть изолированы от расположения файлов и способов адресации данных.
— Распределенная обработка данных: система должна функционировать в условиях вычислительных сетей и обеспечивать эффективный доступ пользователей к любым данным распределенной БД, размещенным в любой точке сети.
— Адаптивность и расширяемость: база данных должна быть настраиваемой, причем настройка не должна вызывать перезаписи прикладных программ. Кроме того, поставляемый с СУБД набор предопределенных типов данных должен быть расширяемым — в системе должны иметься средства для определения новых типов и не должно быть различий в использовании системных и определенных пользователем типов.
— Контроль за целостностью данных: система должна осуществлять контроль ошибок в данных и выполнять проверку взаимного логического соответствия данных.
— Восстановление данных после сбоев: автоматическое восстановление без потери данных транзакции. В случае аппаратных или программных сбоев система должна возвращаться к некоторому согласованному состоянию данных.
— Вспомогательные средства должны позволять разработчику или администратору базы
данных предсказать и оптимизировать производительность системы.
— Автоматическая реорганизация и перемещение: система должна обеспечивать возможность перемещения данных или автоматическую реорганизацию физической структуры.
Основные понятия баз данных
Цель лекции: Уяснить разницу между базой данных и системой управления базой данных. Ознакомиться с основными требованиями, которые предъявляются к банку данных и основными определениями, относящимися к БД и СУБД.
Рассмотрим общий смысл понятий базы данных (БД) и системы управления базами данных (СУБД).
С самого начала развития вычислительной техники образовались два основных направления использования ее.
На самом деле, второе направление возникло несколько позже первого. Это связано с тем, что на заре вычислительной техники компьютеры обладали ограниченными возможностями в части памяти. Понятно, что можно говорить о надежном и долговременном хранении информации только при наличии запоминающих устройств, сохраняющих информацию после выключения электрического питания. Оперативная память этим свойством обычно не обладает. В начале, использовались два вида устройств внешней памяти: магнитные ленты и барабаны. При этом емкость магнитных лент была достаточно велика, но по своей физической природе они обеспечивали последовательный доступ к данным. Магнитные же барабаны (они больше всего похожи на современные магнитные диски с фиксированными головками) давали возможность произвольного доступа к данным, но были ограниченного размера.
Легко видеть, что указанные ограничения не очень существенны для чисто численных расчетов. Даже если программа должна обработать (или произвести) большой объем информации, при программировании можно продумать расположение этой информации во внешней памяти, чтобы программа работала как можно быстрее.
С другой стороны, для информационных систем, в которых потребность в текущих данных определяется пользователем, наличие только магнитных лент и барабанов неудовлетворительно. Представьте себе покупателя билета, который стоя у кассы должен дождаться полной перемотки магнитной ленты. Одним из естественных требований к таким системам является средняя быстрота выполнения операций.
С появлением магнитных дисков началась история систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной и внешней памятью с помощью программно-аппаратных средств низкого уровня (машинных команд или вызовов соответствующих программ операционной системы). Такой режим работы не позволяет или очень затрудняет поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации данных во внешней памяти.
Любая задача обработки информации и принятия решений может быть представлена в виде схемы, показанной на рис. 1.1.
Определение основных терминов
Дадим определения основных терминов. В качестве составных частей схемы выделяются информация (входная и выходная) и правила ее преобразования.
Правила могут быть в виде алгоритмов, процедур и эвристических последовательностей.
Алгоритм | — последовательность правил перехода от исходных данных к результату. Правила могут выполняться компьютером или человеком. |
Данные | — совокупность объективных сведений. |
Информация | — сведения, неизвестные ранее получателю информации, пополняющие его знания, подтверждающие или опровергающие положения и соответствующие убеждения. Информация носит субъективный характер и определяется уровнем знаний субъекта и степенью его восприятия. Информация извлекается субъектом из соответствующих данных. |
Знания | — совокупность фактов, закономерностей и эвристических правил, с помощью которых решается поставленная задача. |
Последовательность операций обработки данных называют информационной технологией (ИТ). В силу значительного количества информации в современных задачах она должна быть упорядочена. Существует два подхода к упорядочению.
База знаний (БЗ) представляет собой совокупность БД и используемых правил, полученных от лиц, принимающих решения ( ЛПР ).
Наряду с понятием «база данных» существует термин » банк данных «, который имеет две трактовки.
Иногда в составе банка данных выделяют архивы. Основанием для этого является особый режим использования данных, когда только часть данных находится под оперативным управлением СУБД. Все остальные данные обычно располагаются на носителях, оперативно не управляемых СУБД. Одни и те же данные в разные моменты времени могут входить как в базы данных, так и в архивы. Банки данных могут не иметь архивов, но если они есть, то в состав банка данных может входить и система управления архивами.
Основные требования, предъявляемые к банкам данных
Развитие теории и практики создания информационных систем, основанных на концепции баз данных, создание унифицированных методов и средств организации и поиска данных позволяют хранить и обрабатывать информацию о все более сложных объектах и их взаимосвязях, обеспечивая многоаспектные информационные потребности разных пользователей. Основные требования, предъявляемые к банкам данных, можно сформулировать так:
Компоненты банка данных
Определение банка данных предполагает, что с функционально-организационной точки зрения банк данных является сложной человеко-машинной системой, включающей в себя все подсистемы, необходимые для надежного, эффективного и продолжительного во времени функционирования.
В структуре банка данных выделяют следующие компоненты:
Пользователи БД и СУБД
Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи; администраторы баз данных.
Особо следует поговорить об администраторе базы данных (АБД). Естественно, что база данных строится для конечного пользователя (КП). Однако первоначально предполагалось, что КП не смогут работать без специалиста-программиста, которого назвали администратором базы данных. С появлением СУБД они взяли на себя значительную часть функций АБД, особенно для БД с небольшим объемом данных. Однако для крупных централизованных и распределенных баз данных потребность в АБД сохранилась. В широком плане под АБД понимают системных аналитиков, проектировщиков структур данных и информационного обеспечения, проектировщиков технологии процессов обработки, системных и прикладных программистов, операторов, специалистов в предметной области и по техническому обслуживанию. Иными словами, в крупных базах данных это могут быть коллективы специалистов. В обязанности АБД входит:
Краткие итоги
Основные требования, предъявляемые к банкам данных: многократное использование данных, простота, легкость использования, гибкость использования, быстрая обработка запросов на данные, язык взаимодействия.
Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи; администраторы баз данных.
Основные понятия баз данных
Цель лекции: Уяснить разницу между базой данных и системой управления базой данных. Ознакомиться с основными требованиями, которые предъявляются к банку данных и основными определениями, относящимися к БД и СУБД.
Рассмотрим общий смысл понятий базы данных (БД) и системы управления базами данных (СУБД).
С самого начала развития вычислительной техники образовались два основных направления использования ее.
На самом деле, второе направление возникло несколько позже первого. Это связано с тем, что на заре вычислительной техники компьютеры обладали ограниченными возможностями в части памяти. Понятно, что можно говорить о надежном и долговременном хранении информации только при наличии запоминающих устройств, сохраняющих информацию после выключения электрического питания. Оперативная память этим свойством обычно не обладает. В начале, использовались два вида устройств внешней памяти: магнитные ленты и барабаны. При этом емкость магнитных лент была достаточно велика, но по своей физической природе они обеспечивали последовательный доступ к данным. Магнитные же барабаны (они больше всего похожи на современные магнитные диски с фиксированными головками) давали возможность произвольного доступа к данным, но были ограниченного размера.
Легко видеть, что указанные ограничения не очень существенны для чисто численных расчетов. Даже если программа должна обработать (или произвести) большой объем информации, при программировании можно продумать расположение этой информации во внешней памяти, чтобы программа работала как можно быстрее.
С другой стороны, для информационных систем, в которых потребность в текущих данных определяется пользователем, наличие только магнитных лент и барабанов неудовлетворительно. Представьте себе покупателя билета, который стоя у кассы должен дождаться полной перемотки магнитной ленты. Одним из естественных требований к таким системам является средняя быстрота выполнения операций.
С появлением магнитных дисков началась история систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной и внешней памятью с помощью программно-аппаратных средств низкого уровня (машинных команд или вызовов соответствующих программ операционной системы). Такой режим работы не позволяет или очень затрудняет поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации данных во внешней памяти.
Любая задача обработки информации и принятия решений может быть представлена в виде схемы, показанной на рис. 1.1.
Определение основных терминов
Дадим определения основных терминов. В качестве составных частей схемы выделяются информация (входная и выходная) и правила ее преобразования.
Правила могут быть в виде алгоритмов, процедур и эвристических последовательностей.
Алгоритм | — последовательность правил перехода от исходных данных к результату. Правила могут выполняться компьютером или человеком. |
Данные | — совокупность объективных сведений. |
Информация | — сведения, неизвестные ранее получателю информации, пополняющие его знания, подтверждающие или опровергающие положения и соответствующие убеждения. Информация носит субъективный характер и определяется уровнем знаний субъекта и степенью его восприятия. Информация извлекается субъектом из соответствующих данных. |
Знания | — совокупность фактов, закономерностей и эвристических правил, с помощью которых решается поставленная задача. |
Последовательность операций обработки данных называют информационной технологией (ИТ). В силу значительного количества информации в современных задачах она должна быть упорядочена. Существует два подхода к упорядочению.
База знаний (БЗ) представляет собой совокупность БД и используемых правил, полученных от лиц, принимающих решения ( ЛПР ).
Наряду с понятием «база данных» существует термин » банк данных «, который имеет две трактовки.
Иногда в составе банка данных выделяют архивы. Основанием для этого является особый режим использования данных, когда только часть данных находится под оперативным управлением СУБД. Все остальные данные обычно располагаются на носителях, оперативно не управляемых СУБД. Одни и те же данные в разные моменты времени могут входить как в базы данных, так и в архивы. Банки данных могут не иметь архивов, но если они есть, то в состав банка данных может входить и система управления архивами.
Основные требования, предъявляемые к банкам данных
Развитие теории и практики создания информационных систем, основанных на концепции баз данных, создание унифицированных методов и средств организации и поиска данных позволяют хранить и обрабатывать информацию о все более сложных объектах и их взаимосвязях, обеспечивая многоаспектные информационные потребности разных пользователей. Основные требования, предъявляемые к банкам данных, можно сформулировать так:
Компоненты банка данных
Определение банка данных предполагает, что с функционально-организационной точки зрения банк данных является сложной человеко-машинной системой, включающей в себя все подсистемы, необходимые для надежного, эффективного и продолжительного во времени функционирования.
В структуре банка данных выделяют следующие компоненты:
Пользователи БД и СУБД
Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи; администраторы баз данных.
Особо следует поговорить об администраторе базы данных (АБД). Естественно, что база данных строится для конечного пользователя (КП). Однако первоначально предполагалось, что КП не смогут работать без специалиста-программиста, которого назвали администратором базы данных. С появлением СУБД они взяли на себя значительную часть функций АБД, особенно для БД с небольшим объемом данных. Однако для крупных централизованных и распределенных баз данных потребность в АБД сохранилась. В широком плане под АБД понимают системных аналитиков, проектировщиков структур данных и информационного обеспечения, проектировщиков технологии процессов обработки, системных и прикладных программистов, операторов, специалистов в предметной области и по техническому обслуживанию. Иными словами, в крупных базах данных это могут быть коллективы специалистов. В обязанности АБД входит:
Краткие итоги
Основные требования, предъявляемые к банкам данных: многократное использование данных, простота, легкость использования, гибкость использования, быстрая обработка запросов на данные, язык взаимодействия.
Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи; администраторы баз данных.