• Обновление приложений Xamarin под iOS на Iphone X

    Привет, Хабр! Представляю вашему вниманию перевод статьи Updating Xamarin.iOS Apps for the iPhone X автора John Miller.

    Самым значительным событием в компании Apple в этом году, безусловно, стал выход Iphone X. Новейший дисплей Super Retina создает потрясающий эффект погружения по сравнению с тем, что нам когда-либо доводилось испытывать при взаимодействии с айфоном. И, вероятно, в связи с такими переменами, разработчики мобильных приложений на Xamarin задаются вопросом о том, какие изменения нужно внести в свои приложения. Итак, сначала давайте ознакомимся с тем, как подготовить приложения для Iphone X.

    Анализ приложения с помощью iPhone X Simulator


    Чтобы проверить, совместимо ли ваше приложение с iPhone X, в первую очередь обновите Xamarin.iOS до версии 11+ и скачайте и установите Xcode 9. Если вы еще этого не сделали, то вам нужно ознакомиться с документацией о начале работы с iOS 11. Затем, после обновления, вы сможете запустить ваш симулятор Iphone и понаблюдать, как приложение будет себя вести. Обратите особое внимание на области приложения, которые не используют автоматическую компоновку элементов интерфейса (Auto Layout), и те, что отображают содержимое в полноэкранном режиме. Если ваше приложение поддерживает горизонтальный режим, не забудьте повернуть симулятор и убедиться в том, что интерфейс и в этом режиме отображается корректно. И если приложение на Iphone запускается, но не использует разрешение экрана в полной мере, то, скорее всего, причина в отсутствии раскадровки экрана запуска (Launch Screen Storyboard). Вы можете прочесть документацию о получении этой настройки на официальном сайте.

    image
    Читать дальше →
  • Как у нас устроено AB-тестирование. Лекция Яндекса

      AB-тестирование на сервисах Яндекса проводится постоянно. «Раскатить на такую-то долю аудитории» и посмотреть на реакцию людей — настолько стандартная практика, что ни у кого в команде не возникает вопроса, зачем это нужно. А чтобы не было проблем с самим тестированием, у нас есть специальная инфраструктура для экспериментов. Подробности рассказывают разработчики Сергей Мыц и Данил Валгушев.


      Сергей:
      — Я попробую упрощенно описать задачу AB-тестирования. Есть абстрактная система с пользователями, в нее мы вносим какие-то изменения, и нужно уметь измерять в ней пользу. Пока все просто, но слишком абстрактно. Пример. Есть веб-сервис по сравнению пары фотографий котов. Пользователь должен выбрать наиболее понравившуюся фотографию. При этом он может выбрать не только левый или правый снимок, но и «против всех». Значит, мы подобрали картинки не очень хорошо. Наша задача — обоснованно улучшать сервис, доказывая это цифрами.
      Читать дальше →
      • +49
      • 8,2k
      • 2
    • Паттерн Model-Update-View и зависимые типы



        Model-Updater-View — функциональный паттерн, успешно применяемый в языке Elm в основном для разработки пользовательских интерфейсов. Что бы им воспользоваться надо создать тип Model, представляющий полное состояние программы, тип Message, описывающий события внешней среды, на которые программа должна реагировать, меняя свое состояние, функцию updater, которая из старого состояния и сообщения создает новое состояние прораммы и функции view, которая вычисляет по состоянию программы требуемые воздействия на внешнюю среду, которые порождают события типа Message. Паттерн очень удобный, но у него есть маленький недостаток — он не позволяет описать какие события имеют смысл для конкретных состояний программы.

        Схожая проблема возникает (и решается) и при использовании ОО-паттерна State.

        Язык Elm простой, но очень строгий — он проверяет, что функция updater хоть как-то обрабатывает все возможные сочетания модели-состояние и сообщения-события. По этому приходится писать лишний, пусть и тривиальный — как правило оставляющий модель без изменений, код. Я хочу продемонстрировать, как этого можно избежать в более сложных языках — Idris, Scala, C++ и Haskell.
        Читать дальше →
        • +16
        • 3,5k
        • 2
      • CatalogBox — идея развития ComboBox'а

          Программист должен упрощать жизнь пользователю, а не себе.
          (конечно, есть нюансы)

          Автор статьи

          Был ComboBox


          Статья описывает идею визуального веб-контрола для выбора элемента из списка. Эта идея о том, как можно эволюционировать ComboBox (он же DropDown, он же select в html) для повышения удобства программного продукта для пользователя – чтобы контрол выбора стал намного удобнее и дружелюбнее при выборе сложных объектов из больших и не очень списков. Ведь задача программиста — в непрерывном улучшении и упрощении жизни пользователя.

          Это идея, реализация которой есть только частичная и только для ASP.NET Web Forms в связке с devexpress – поскольку у меня большой бекграунд именно на этой связке технологий.

          Эта статья не для тех, кто хочет скопипастить код, нажать F5 и увидеть результат. Ее корректнее всего было бы отнести к документам, которые называют Функциональными Требованиями или даже Функциональным Дизайном. Поэтому, если вам интересен взгляд на эволюцию удобства, то, надеюсь, статья будет полезна.
          Читать дальше →
        • Дайджест продуктового дизайна, октябрь 2017

            Уже семь лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-сентябрь 2017.

            Дайджест продуктового дизайна, октябрь 2017
            Читать дальше →
          • Предметно-ориентированные языки для бизнес-приложений — пользовательские интерфейсы

            Эта статья 一 перевод статьи Domain-Specific Languages for Business Applications — Modelling User Interfaces

            Разработка бизнес-приложений связана с решением задач в различных предметных областях, таких как хранение данных, обработка бизнес-логики, проектирование интерфейса пользователя. Для прироста производительности и качества не хватит ни одного предметно-ориентированного языка (domain-specific language, DSL), ни нескольких, если они недостаточно интегрированы между собой. Значительные улучшения может принести лишь целостный подход, при котором согласованно применяются несколько DSL для моделирования решений в различных предметных областях.

            В этой статье мы рассмотрим пример DSL, с помощью которого мы моделируем стандартизованные пользовательские интерфейсы для наших бизнес-приложений в modellwerkstatt.org. Логика, присущая DSL, позволяет визуализировать графы объектов полностью и в очень простом, декларативном виде. Мы покажем, насколько просто внедряется обычный код Java, с которым можно взаимодействовать, что обеспечивает дополнительную гибкость и безопасность, в частности типобезопасность. Указав на различие между внутренними и внешними DSL, мы перейдем к JetBrains MPS и сразу же рассмотрим наш DSL для интерфейсов пользователя. Наконец, мы приведем ряд общих соображений относительно взаимодействия DSL между собой и их расширения.
            Читать дальше →
          • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

            Подробнее
            Реклама
          • Инверсия зависимостей в мире фронтенда. Лекция Яндекса

              Паттерны инверсии контроля (dependency inversion, DI) известны уже давно, но пока не нашли широкого распространения в мире фронтенда. Этот доклад отвечает на вопрос о том, как за счет возможностей JS построить надежную архитектуру на основе DI-контейнера. Автор доклада — Евгений ftdebugger Шпилевский, руководитель группы разработки интерфейсов в Яндекс.Коллекциях.


              — Насколько мне известно, инверсия зависимостей, DI-контейнеры и прочие паттерны, придуманные еще в 70-е годы, не очень плотно вошли в мир разработки фронтенда. На это наверняка есть причина. Отчасти дело в том, что многим людям непонятно, зачем они вообще нужны.
              Читать дальше →
              • +35
              • 27,1k
              • 8
            • Идеи виджетов для удобства интернет-сёрфинга

                За 27 лет с момента, когда был создан первый веб-браузер, Всемирная Паутина успела преобразиться несколько раз. Менялись стандарты, появлялись и уходили в забытье целые классы сервисов. Менялись и пользователи. Вслед за учеными и военными, сеть заселили гики. К их огромному возмущению, шумной толпой ворвались школьники. С речёвками и музыкой выкатили цветастые повозки торговцы. Развесили мраморные таблички корпорации. За ними семенили домохозяйки и ковыляли бодрые пенсионеры. Тут то их всех и настиг цокот копыт политиков всех мастей. А в самих браузерах за это время появились вкладки. Очень удобная штука. Не знаю как бы вообще без них пользовался всем этим великолепием.

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

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

                Обобщив свои собственные пользовательские привычки, я попытался вообразить инструменты, которые бы облегчили мне использование браузера.
                Читать дальше →
              • А вы не слишком поторопились изгнать “гамбургер” из своего приложения?


                  Привет. Мы все видим, что происходит с навигацией в приложениях — привычный "гамбургер" заменяют нижним таббаром. Лично меня это напрягало, когда это происходило с моими часто используемыми программами: Pocket, Skype, Youtube, а с недавних пор и VK.


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


                  она: а ты, кстати, видел во что превратился ВК?
                  я: хм… что ты имеешь ввиду?
                  она: да там вообще теперь какая-то бяка. Я поэтому его не обновляю. (показывает на своём айфоне привычное меню навигации в старом стиле)
                  я: lol, ну и правильно делаешь.

                  Знаете, это меня немного удивило. Мы привыкли читать подобные отзывы в play-маркете/эппсторе, но только не вживую. Я подумал, что это достаточный повод обдумать ситуацию. Под катом немного размышлений на эту тему.

                  Читать дальше →
                • UX-дизайн: 50 вещей, которые вы наверняка забыли сделать

                  • Перевод
                  «Я не злюсь, я просто разочарован.»
                  — PM

                  image


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

                  Представляем вам чеклист из 50 пунктов для самопроверки. Вот примерные подразделы:

                  1. Логин и регистрация
                  2. Первый опыт
                  3. Важные детали
                  4. Запуск
                  5. Профиль
                  6. Безумные потоки


                  Читать дальше →
                Самое читаемое