настольные приложения условно можно разделить на приложения и визуальные приложения
Flutter и настольные приложения
Ни для кого не секрет то, что команда разработчиков Flutter стремится к тому, чтобы этот фреймворк позволял бы, пользуясь единой кодовой базой, создавать приложения для широкого разнообразия платформ. Сюда входят iOS, Android, Windows, Linux, macOS и веб. При этом такие приложения должны компилироваться в формат, специфичный для каждой из платформ, а их внешний вид не должен уступать внешнему виду хорошо сделанных игр. В Google фреймворк Flutter применяется во многих проектах: от Assistant до Stadia, от Cloud Search до Blogger. Flutter используются и другими компаниями — от ByteDance до Grab, от Nubank до MGM Resorts. Всем им приносит пользу та гибкость и продуктивность разработки, которую даёт Flutter.
Многие из вас заинтересованы в развитии возможностей Flutter, касающихся настольных платформ, куда входят Windows, macOS, Linux. В опросах и на GitHub тема разработки настольных приложений относится к одной из самых заметных новых возможностей Flutter. В ближайшее время мы собираемся больше рассказать о том, чем мы занимаемся. Полагаем, стоит начать с обзора того, что сделано различными командами, отвечающими за возможности Flutter. Хотя поддержка настольных приложений пока находится на стадии ознакомительной технической версии, над соответствующими возможностями ведётся серьёзная работа.
Сборка приложений
Особенности настольных приложений
Разрабатываете ли вы приложение, представленное самостоятельным исполняемым файлом, или веб-приложение, у настольных приложений есть некоторые специфические возможности и особенности. Например, окна настольных приложений обычно выводятся в ландшафтном режиме, а их размер можно менять. Пользователи обычно вводят данные в приложения, применяя клавиатуру и мышь, а не экранные клавиатуры и сенсорный ввод. Элементы управления оптимизированы с учётом того, что в настольных приложениях при размещении элементов управления используются особые значения визуальной плотности.
Мы, на уровне фреймворка, внесли во Flutter некоторые изменения, которые направлены на поддержку настольных приложений.
Команда Dart проделала большую работу по улучшению интерфейса внешних функций (Foreign Function Interface, FFI). Это способствует повышению скорости внедрения новых возможностей во Flutter. Например, для API, основанных на C, библиотека dart:ffi предоставляет прямой механизм для организации привязки к нативному коду. Среда выполнения Dart даёт возможность вызывать динамически связываемые библиотеки и выделять память в куче. В основе этого механизма лежат объекты Dart.
Простой пример Windows-проекта, в котором использовано Win32-API MessageBox()
На самом деле, программисту необязательно делать всё это самому. Дело в том, что велика вероятность того, что кто-то уже подготовил код, упрощающий работу с необходимыми вам API. Здесь о FFI можно почитать подробнее.
Обновление модели плагинов
Flutter спроектирован с учётом того, чтобы у него было бы компактное ядро. Для оснащения фреймворка дополнительными возможностями соответствующий функционал оформляется в виде подключаемых плагинов и пакетов, дающих возможность интеграции с операционными системами, на которых работает Flutter. Плагины и пакеты могут создавать не только разработчики Flutter, но и другие программисты.
Правда, учитывая то, что во Flutter улучшается поддержка мобильных и настольных платформ, а так же веб-приложений, разрабатывать плагины для каждой поддерживаемой фреймворком платформы становится всё сложнее и сложнее. При разработке некоего плагина, весьма вероятно, понадобится объединить усилия разных программистов, каждый из которых хорошо разбирается в какой-то платформе.
Здесь нам на помощь может прийти подход, в соответствии с которым некий базовый плагин описывает общий интерфейс, который может быть независимо реализован на разных платформах. В результате, как было описано в свежем материале про современную разработку плагинов, мы недавно внедрили во Flutter систему, которая упрощает совместную работу различных авторов над плагинами. Благодаря этой системе уже можно в явном виде указывать то, какие именно платформы поддерживаются конкретным плагином.
Мы начали использовать эту модель при работе над некоторыми базовыми плагинами. Примеры нового подхода к совместной разработке плагинов можно найти здесь.
Обратите внимание на то, что API плагинов для Windows и Linux пока ещё не устоялся, поэтому, хотя мы и советуем разработчикам знакомиться с новыми возможностями Flutter, мы пока не готовы к выпуску этих возможностей в продакшн. Мы, кроме того, работаем над добавлением на pub.dev тегов, относящихся к настольным платформам.
Запуск программ на Windows: Win32 и UWP
Один интересный аспект нашей работы, связанный с Windows, заключается в том, что здесь мы экспериментируем с различными подходами к архитектуре. Flutter, на любой платформе, внедряется в маленькое хост-приложение, являющееся контейнером («embedder») с применением подхода, напоминающего тот, который используется в игровых движках вроде Unity. Это приложение-embedder, особое для каждой платформы, предоставляет нам точку входа в проект. Оно согласовывает свои действия с операционной системой, работая со средствами рендеринга, с пользовательским вводом и с инструментами, обеспечивающими доступность контента. Оно поддерживает и цикл событий.
Windows даёт нам два способа создания подобного приложения. Первый — это зрелая модель программирования Win32, которую можно использовать в качестве точки входа для Flutter-проектов. Этот подход предлагает максимальный уровень обратной совместимости с различными платформами, с такими, как Windows 7. Он позволяет создавать стандартные EXE-файлы, которые ожидает получить в результате работы над проектом множество программистов. В отличие от Win32, современная модель приложений UWP рекомендована для Windows 10. Эта модель предлагает заманчивые возможности по созданию Flutter-приложений для особых устройств, вроде Xbox, и для ОС Windows 10X, которая должна скоро выйти.
Мы, неофициально, работаем с различными разработчиками и исследуем разные решения. Мы с удовольствием более близко поработали бы с Microsoft ради того, чтобы повысить качество Windows-приложений, сделанных во Flutter. Так как семейство устройств Surface теперь включает в себя системы, основанные на Android и на Windows, мы думаем, что Flutter способен предложить Microsoft мощную платформу, которая позволяет создавать привлекательные нативные приложения для самых разных устройств.
Эксперименты с настольными приложениями
Так как возможности, о которых шла речь, пока находятся на стадии ознакомительной технической версии, API и вспомогательные инструменты всё ещё нестабильны. У нас запланировано ещё много дел, которые нужно доделать прежде чем мы переведём поддержку настольных приложений в разряд стабильных возможностей. Сюда входят, кроме того, улучшение доступности контента и локализации.
Мы уже видели, как некоторые смелые разработчики начали создавать настольные приложения с помощью новых возможностей Flutter. Одно из первых таких приложений разработано для macOS. Оно называется Sharezone. Это — планировщик для учеников, нацеленный на немецкий рынок образования. Сначала этот проект был выпущен в виде мобильного приложения. А недавно он вышел в настольном варианте и в варианте, предназначенном для веб.
Sharezone Schulplan — приложение для учеников, учителей и родителей. Оно позволяет планировать и отслеживать домашние задания, учебные группы и расписания
Планируете ли вы использовать Flutter для разработки настольных приложений?
Конспект ПРО 4+
Nicolay Ryazanov
Для iPad
Снимки экрана
Описание
Платная версия приложения «Конспект».
Система существует, совершенствуется и обновляется для таких должностей как: сигналист, регулировщик, составитель поездов, дежурный по станции (ДСП), дежурный по горке (ДСПГ), поездной диспетчер (ДНЦ), маневровый диспетчер(ДСЦ), приёмщик, приёмосдатчик, оператор СТЦ.
В приложении организован:
— максимально быстрый и удобный доступ к архиву событий на сети железных дорог России, отнесенных за Дирекцией Управления Движением ОАО «РЖД»;
— отобран и систематизирован материал для подготовки к предсменным инструктажам по тематикам и должностям.
— организована удобная навигация по основным инструкциям и распоряжениям в Дирекции Управления Движением ОАО «РЖД».
База данных приложения постоянно обновляется. На момент публикации, в приложении доступны следующие нормативные документы:
— ПТЭ;
— ИДП;
— ИСИ;
— ЦШ-530-11;
— Распоряжение 2540Р;
— Распоряжение 3154Р;
— Распоряжение 2444Р;
— Распоряжение 261Р;
— Распоряжение 2705Р;
— Распоряжение 2291Р;
— Распоряжение 115Р;
— Распоряжение 2436Р;
— Распоряжение 1312Р;
— Распоряжение 1258Р;
— Распоряжение 1697Р;
— Распоряжение 353Р;
— Распоряжение 758Р;
— Распоряжение 859Р;
— Распоряжение 1799Р;
— Распоряжение 711Р;
— Памятка ДС при проведении КМО
Информация о подписке:
— Сумма списания ( 29 рублей) и срок действия подписки ( ежемесячная подписка) будут применены к Вашей учетной записи iTunes после окончания бесплатного пробного периода (при подтверждении).
— Подписка будет автоматически продлена, если она не была отменена в течение 24 часов до окончания её действия.
— Вы можете отменить подписку в любое время в настройках Вашей учётной записи iTunes.
— Любая неиспользованная часть бесплатного пробного периода будет аннулирована, если Вы приобрели подписку.
Мои Дела: Ежедневник задач 4+
Список дел,планер,календарь.
Ruslan Nasirov
Для iPhone
Снимки экрана (iPhone)
Описание
Планировщик задач «Мои Дела» станет незаменимым помощником для пользователей любых возрастов и социальных статусов! От подростка-до пенсионера, от школьника – до директора, эта программа готова поддержать вас при самом напряженном распорядке дня.
Незаменимое сочетание календаря, ежедневника, планировщика, блокнота и напоминаний делает планер «Мои дела» уникальным и массово востребованным приложением. Уже более двух миллионов людей по всему миру составляют свои цели, планы и списки задач, используя этот простой и удобный органайзер, находя время на отдых и личную жизнь.
Ежедневник «Мои Дела» обладает удобным интерфейсом, с которым легко контролировать как текущий день, так и рабочую неделю одновременно. Для этого главный экран приложения специально разработан в виде рабочей недели (пн.-вс.), где легко планировать список задач и переносить запланированные дела на более удобное время.
Основные возможности приложения:
— планирование задач на день
— составление списка дел на текущую неделю
— планирование повторяющихся задач
— перенос списка дел
— копирование списка задач
— отправка списка дел
— перемещение записей
— создание напоминаний
— контроль личной эффективности
— заметки
— голосовой ввод
— поиск
— уведомления без подключения к интернету
— синхронизация
— Pro-версия, расширенные настройки..
При открытии дня, появляется список дел, целей со шкалой прогресса их выполнения. Шкала прогресса покажет, насколько вы приблизились к завершению поставленных задач, а также, какие дни у вас проходят более продуктивно. Всего через неделю пользования планером «Мои Дела» вы определите свою продуктивность и продумаете, как организовать свое время более эффективно.
Напоминания о событиях:
Органайзер «Мои Дела» всегда напомнит о рабочих и личных планах, вы не упустите ни одну деталь из вашего списка дел и всегда будете на шаг впереди. Выбирайте, за какое время до события планер «Мои Дела» должен напомнить в диапазоне от 5 минут до 3 дней, и ежедневник пришлет вам напоминание о событии строго в срок.
В календаре, у каждой даты вы найдете отдельную цифру. Цифра может быть трех цветов-зеленый, желтый и красный. Данные цифры показывают, какое количество задач в органайзере запланировано на эти дни, а цвет цифры укажет, как прошло их выполнение.
Раздел будет удобен для людей, которым необходимо делать заметки, записывая свои мысли, планы, идеи в блокнот без привязки к дате и времени. Если возникнет необходимость переноса записи (заметки) в основной раздел планировщика «Мои Дела», это можно сделать без особого труда, воспользовавшись функцией переноса.
Бейджик с напоминаниями:
На иконке приложения, отображается-бейджик (цифра в верхнем углу) с напоминанием о количестве невыполненных дел на сегодняшний день. С этой функцией вы всегда будете в курсе насколько продуктивно проходит организация вашего дня, все ли намеченное на сегодня вы успеваете сделать. Бейджик избавляет от необходимости постоянно заглядывать в планер.
Потратив несколько минут на знакомство с этим простым приложением, где есть все необходимое для организации вашего расписания (планер, ежедневник, календарь, уведомления, блокнот), вы значительно упростите себе жизнь и работу!
Средства разработки приложений
Оглавление
Процесс проектирования данных для реляционных СУБД является до известной степени процессом логическим и подчиняется единой стандартной методологии. Это обусловливает низкую степень зависимости последовательности выполняемых при проектировании данных действий как от того, какое именно средство проектирования данных применяется, так и от того, применяется ли оно вообще. Собственно, именно поэтому средства проектирования данных в большей или меньшей степени сходны по своему интерфейсу, отражающему по существу процесс рисования моделей данных на бумаге.
Классификация средств разработки приложений
Классифицировать средства разработки можно с различных позиций, например исходя из поддерживаемого ими языка программирования, или работоспособности созданных приложений на той или иной платформе, или наличия в них тех или иных библиотек и визуальных средств. Мы же попробуем классифицировать средства разработки приложений, исходя из удобства их применения для создания продуктов, представляющих собой пользовательский интерфейс к базе данных.
Средства разработки, ориентированные на конкретные СУБД
Продукты этого класса на рынке средств разработки имеются и сегодня. Почти все производители серверных СУБД производят и средства разработки приложений. В подавляющем большинстве случаев современные версии этих средств разработки поддерживают доступ к СУБД других производителей как минимум с помощью одного из универсальных механизмов доступа к данным (ODBC, OLE DB, BDE). Однако доступ к «своей» СУБД обычно осуществляется максимально эффективным способом, то есть с помощью клиентских API, объектов, содержащихся в библиотеках клиентской части серверных СУБД, специальных классов для доступа к данным этой СУБД либо за счет реализации драйверов для универсальных механизмов доступа к данным, способной учитывать специфические особенности данной СУБД.
Средства разработки, универсальные по отношению к СУБД
Более поздние версии означенных средств разработки приобрели библиотеки функций и классов, предназначенных для доступа к данным с помощью тех или иных универсальных механизмов. Дальнейшее развитие средств разработки привело к появлению двух категорий продуктов подобного назначения.
К первой категории относятся средства разработки, обладающие обширными библиотеками классов, большим количеством «мастеров» и кодогенераторов, но ориентированные на «ручное» создание кода и довольно редко применяемые для создания «стандартных» приложений для работы с базами данных (здесь под словосочетанием «стандартное приложение» мы подразумеваем приложение, имеющее непосредственный доступ к базе данных, с которым взаимодействует пользователь, то есть являющееся «классическим» клиентом серверной СУБД). Типичным (и единственным действительно популярным на рынке программного обеспечения) представителем этого класса продуктов является Microsoft Visual C++. С помощью Microsoft Visual C++ и библиотеки MFC (Microsoft Foundation Classes) можно создавать любые приложения, если вы обладаете навыком, знаниями, умением и временем. Тем не менее приложения, обладающие сложным пользовательским интерфейсом (например, использующие базы данных), с его помощью разрабатывают не так часто (хотя примеры подобного его использования можно найти даже в отечественной литературе). В основном этот продукт применяется для создания клиентских приложений в случае предъявления к ним особых требований, таких, например, как высокая производительность, способность осуществлять какие-либо нестандартные операции и пр.
Ко второй категории относятся средства разработки с развитыми визуальными инструментами, позволяющие буквально «рисовать» пользовательский интерфейс, частично стирая различия между работой программиста и пользователя и удешевляя конечный продукт за счет привлечения к проектированию интерфейса разработчиков, обладающих не самой высокой квалификацией (если внимательно изучить программы курсов учебных центров, специализирующихся на обучении средствам разработки Microsoft, Borland и Sybase, то можно обнаружить, что продолжительность курса обучения, прослушав который обычный пользователь Windows должен научиться создавать клиентские приложения для серверных СУБД, составляет от 5 до 10 рабочих дней).
В последнее время очень популярным стало также создание приложений, использующих доступ к базам данных, но расположенных внутри обычных документов. В основу средств разработки подобных приложений положены макроязыки соответствующих редакторов. Наиболее типичным и практически единственным популярным представителем средств разработки этой категории является Visual Basic for Applications, сходный с перечисленными выше визуальными средствами разработки и отличающийся от них тем, что созданные с его помощью приложения содержатся внутри документов Microsoft Office и не отчуждаются от них.
Отметим, однако, что приведенное деление средств разработки на эти два класса весьма условно. Как мы уже говорили выше, практически все средства разработки приложений с базами данных, в том числе и ориентированные на конкретные СУБД, поддерживают как минимум один из универсальных механизмов доступа к данным. И практически все «универсальные» средства разработки приложений, если они принадлежат производителю каких-либо серверных СУБД, поддерживают «свои» СУБД лучше, чем СУБД сторонних производителей (это может выражаться, например, в особых библиотеках классов или компонентов для доступа к данному серверу, а также в наличии общих репозитариев объектов и моделей данных, а иногда и общих с клиентской частью серверной СУБД редакторов параметров доступа к данным или схем данных)
Классификация приложений, использующих базы данных
Приложения в архитектуре «клиент-сервер»
В предыдущих статьях данного цикла мы уже говорили о том, что представляет собой архитектура «клиент-сервер» в традиционном понимании. Поэтому мы лишь кратко напомним, что информационные системы, созданные в такой архитектуре, представляют собой сервер баз данных, манипулирующий данными, и клиентское приложение, обращающееся к нему и использующее для этого либо клиентские API (или инкапсулирующие их вызовы классы и компоненты), либо один из универсальных механизмов доступа к данным. Обычно при использовании такой архитектуры приложений на сервер баз данных возлагается также контроль соблюдения бизнес-правил, реализованных в виде хранимых процедур, триггеров, серверных ограничений и иных объектов базы данных.
Для создания клиентских приложений в этом случае чаще всего применяются средства разработки, обладающие развитыми визуальными инструментами, такие как Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder.
Отметим, однако, что выбор архитектур современных приложений в настоящее время достаточно широк и не исчерпывается «классической» архитектурой «клиент-сервер», подразумевающей, что приложение состоит из сервера баз данных и клиентских приложений, взаимодействующих с этим сервером. Поэтому ниже мы обсудим, какие средства разработки удобно применять при создании распределенных приложений.
В отличие от обычных приложений в архитектуре «клиент-сервер», в многозвенных системах «тонкие» клиенты, как правило, не имеют непосредственного доступа к данным. Вместо этого клиенты посылают запросы к специально предназначенным для этой цели бизнес-объектам. Те, в свою очередь, могут выполнять запрошенные клиентом бизнес-операции (такие как обработка заказа, выполнение банковской транзакции и т.д.).
Некоторые из бизнес-объектов могут обращаться к сервисам данных, используя те или иные механизмы доступа к данным. Поскольку конечный пользователь не взаимодействует непосредственно с бизнес-объектами, последние обычно не обладают пользовательским интерфейсом в привычном понимании. Физически бизнес-объекты могут быть реализованы в виде сервисов операционной системы, консольных приложений либо Windows-приложений, а также в виде библиотек, загружаемых в адресное пространство специально предназначенного для этой цели серверного приложения (Web-сервера, сервера приложений, монитора транзакций и др.). Нередко один бизнес-объект обслуживает множество клиентов.
В настоящей статье мы обсудили процесс создания приложений, использующих базы данных, а также различные категории средств, применяемых при их разработке. Мы убедились, что средства разработки можно условно разделить, с одной стороны, на инструменты, ориентированные на применение конкретных СУБД, инструменты, универсальные по отношению к СУБД, и среды настольных СУБД, применяемые для разработки приложений. С другой стороны, их можно разделить на средства, ориентированные на визуальное проектирование пользовательского интерфейса (к этой категории относятся Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder), и на средства, ориентированные на написание кода приложения (Visual C++).
Рассмотрев несколько наиболее популярных средств разработки приложений, мы убедились, что большинство подобных продуктов, как правило, поддерживают:
Мы также обсудили, чем приложения в архитектуре «клиент-сервер» отличаются от распределенных систем и какие средства разработки можно применять при создании обоих типов приложений.
PRFCT: Создайте идеальное фото 4+
Фоторедактор Яны Левенцевой
Yana Leventseva
Для iPhone
Снимки экрана (iPhone)
Описание
PRFCT — это универсальный фоторедактор для быстрой и безупречной обработки кадров на телефоне. Подходит для любителей и фотографов любого уровня.
· Десятки универсальных пресетов, которые задают тренды на рынке
· Все необходимые инструменты для редактирования: начиная с цветокоррекции и заканчивая работой со светом
· Креативные коллажи для stories
· Эксклюзивная коллекция графических шрифтов
· Спецэффекты: световые блики с разными режимами наложения; «пыль» для имитации винтажной обработки; уникальные текстуры бумаги и др.
· Интуитивно понятный, лаконичный, удобный интерфейс
PRFCT — это территория для самовыражения, прокачки профессиональных навыков и раскрытия творческого потенциала.
Создатель PRFCT — фотограф, эксперт по мобильной обработке, автор образовательных курсов и топовый блогер Яна Левенцева. Ее кадры известны на весь мир. Вы видели их на тысячах онлайн-площадок.
Именно поэтому PRFCT — приложение, которое уже зарекомендовало себя. Сегодня универсальными пресетами пользуются самые популярные инфлюенсеры в сфере visual- и travel-тематики.
Откройте для себя возможности PRFCT и поднимите свой контент на новый уровень. Позвольте себе творить и узнайте, на что вы способны на самом деле.
PRFCT — ваш шанс на идеальные фотографии. Переходите на perfect-уровень уже сегодня, обработав свой первый кадр в новом приложении. Следите за обновлениями, делитесь обратной связью и не ограничивайте свою фантазию.
В пробной версии доступен бесплатный 7-дневный период, во время которого вы сможете протестировать все функции приложения.
Обратите внимание, что спустя неделю подписка на приложение будет платной. Платный период включится автоматически, если только вы не отключите подписку в настройках учетной записи как минимум за 24 часа до окончания текущего периода. Управлять подпиской можно в настройках учетной записи, там же можно отключить автоматическое обновление.