• Как работает конфигурация в .NET Core

    Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.


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


    public IConfiguration Configuration { get; set; }
    public IHostingEnvironment Environment { get; set; }
    
    public Startup(IConfiguration configuration, IHostingEnvironment environment)
    {
       Environment = environment;
       Configuration = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
                .Build();
    }

    Но давайте разберемся, как работает конфигурация, и в каких случаях использовать данный подход, а в каких довериться разработчикам .NET Core. Прошу под кат.

    Читать дальше →
  • Найдена формула безболезненного перехода на .Net Core

      На все про все достаточно 50 чашек кофе.


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


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


      Читать дальше →
    • Создание анимаций переходов между Activity в Android

        Начиная с Android 4.4 в арсенале разработчиков появился дополнительный инструмент для создания анимаций — Transitions Framework. Изначально он предназначался для создания анимаций изменения состояния приложения путём манипулирования несколькими View. С выходом Android 5.0 набор доступных для использования анимаций был расширен, чтобы соответствовать представленной тогда же концепции Material Design.

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

        image
        Читать дальше →
      • Есть ли жизнь без архитектуры?


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


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

          Читать дальше →
        • UI-автотесты для Xamarin

            Тестирование является неотъемлемым элементом любой разработки программного обеспечения. На него выделяется достаточно много времени в общем объеме трудозатрат, однако само по себе тестирование вещь монотонная и однообразная, поэтому хорошо поддается автоматизации. В нашей сегодняшней статье мы рассмотрим то, как использовать UI-тесты в ваших проектах на Xamarin, в том числе в больших бизнес-приложениях.

            Читать дальше →
          • DevOps на службе человека

              Технологии шаг за шагом отнимают наши рабочие места и грозят добраться до самого ценного — Ctr-C из Stack Overflow и Ctrl-V в родной IDE. Но к счастью, ни одна нейронная сеть пока не научилась программировать лучше тебя. Сегодня мы поговорим о том, как можно использовать DevOps, чтобы избавить от рутины целую команду мобильных разработчиков и даже тебя лично.



              Читать дальше →
              • +25
              • 12.7k
              • 3
            • Исследуем RxJava 2 для Android

              • Translation

              enter image description here


              Меня зовут Аркадий, я Android-разработчик в Badoo. В последнее время в нашем блоге много постов про Go, PHP, JS, QA, и я решил разбавить их темами по мобильной разработке. Как раз занимался портированием одного Android-проекта с RxJava 1 на RxJava 2 и читал всё, что можно найти на эту тему в интернете. В частности, доклад Джейка Вортона с конференции GOTO Copenhagen 2016. Мне показалось, что это достойный кандидат на перевод – думаю, многие Android-разработчики задумываются о переходе на RxJava 2, и им интересно, что изменилось по сравнению с первой версией.


              Джейк сделал достаточно объёмное введение о реактивном программировании, так что знание RxJava 1 не требуется для понимания статьи. Доклад был подготовлен, когда RxJava2 ещё только готовилась к выпуску (на текущий момент уже выпущена версия 2.1.0).

              Читать дальше →
              • +40
              • 123k
              • 5
            • Лекция Яндекса: Advanced UI, часть первая

                Мы опубликуем несколько лекций Школы мобильной разработки 2017 года. Эта школа — часть проекта Яндекса «Мобилизация». Здесь можно найти видеокурсы, составленные по итогам «Мобилизации» прошлого года.

                Лекцию «Advanced UI» прочитал Дмитрий Свирихин — разработчик из команды мобильной Яндекс.Почты. Дмитрий объясняет, как при разработке интерфейса Android-приложения решать самые распространённые проблемы.


                Давайте резюмируем все вышесказанное про темы. Единообразные UI-элементы мы должны стилизовать с помощью тем, при этом нам не нужно писать всю тему с нуля, мы можем унаследоваться от какой-то системной темы и первоначально задавать некоторое подмножество атрибутов для этой темы.

                Читать дальше →
                • +29
                • 10.8k
                • 4
              • Kotlin in Action вышел на русском языке

                  Издательство «ДМК Пресс» выпустило русский перевод книги Kotlin in Action:



                  Книга предназначена для программистов с опытом разработки на Java и рассказывает о всех возможностях языка Kotlin для разработки под JVM и Android. Она начинается с обзора основных особенностей языка и затем раскрывает его наиболее интересные отличительные стороны, такие как поддержка создания высокоуровневых абстракций и предметно-ориентированных языков (Domain-Specific Languages). Мы также уделяем много внимания взаимодействию Kotlin с Java и внедрению его в существующие проекты.
                  Читать дальше →
                • Альфа и бета тестирование android приложений

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

                    В очередном обновлении Google Play Developer Console была добавлена возможность тестирования приложений на определенном круге пользователей.
                    Если раньше загрузка apk файла сразу приводила к публикации приложения, то теперь добавлены 2 промежуточных шага.
                    Читать дальше →
                  • Современная Android разработка на Kotlin. Часть 1

                    • Translation
                    Данная статья является перевом статьи от Mladen Rakonjac

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



                    1. Android Studio 3
                    2. Язык программирования Kotlin
                    3. Варианты сборки
                    4. ConstraintLayout
                    5. Библиотека привязки данных Data Binding
                    6. Архитектура MVVM + паттерн repository (с mapper'ами) + Android Manager Wrappers
                    7. RxJava2 и как это помогает нам в архитектуре
                    8. Dagger 2.11, что такое внедрение зависимости, почему вы должны использовать это.
                    9. Retrofit (Rx Java2)
                    10. Room (Rx Java2)

                    Каким будет наше приложение?


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

                    Я попытаюсь объяснить как можно больше строк кода. Вы всегда можете посмотреть код, который я опубликовал на GitHub.
                    Читать дальше →
                    • +6
                    • 35.7k
                    • 7
                  • Планирование задач в Андроид

                    • Tutorial

                    Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «Schedule tasks and jobs intelligently in Android» от Ankit Sinhal.


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

                    Читать дальше →
                  • 7 лучших ферм устройств для тестирования мобильных приложений

                      Еще в далекие времена, когда балом смартфонов заправляли Nokia и Microsoft, возникла одна характерная особенность мобильной разработки — разношерстность устройств по характеристикам и модификациям операционок. Приходилось тестировать приложение не только на разных версиях ОС, но и на разных физических устройствах. После выхода iOS самих моделей телефонов всегда было мало, поэтому с ними проблем не возникало. А вот в мире Android проблема фрагментации встала во весь рост. Моделей на рынке тысячи, и все время появляются новые, и твое приложение или игра должны гарантированно работать на каждой из них. Добавим еще разные версии прошивок на этих моделях… И поймем, что вручную потребуется куча человеко-часов для проверки каждого релиза.


                      Читать дальше →
                    • Как я боролся с комарами. Личный опыт и тесты на себе

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


                        Читать дальше →
                      • Ненужное окно иногда всплывает и прячется в Windows 10



                          Если вы работаете под Windows 10, то могли заметить всплывающее окно, которое появляется на экране, а потом мгновенно исчезает. Такое может случаться раз в день, несколько раз в день или даже каждый час (вообще-то оно и должно появляться каждый час, может, вы не всегда его замечаете). Если вы видели это окно, то вы не одиноки: такая же проблема наблюдается у многих других пользователей, о чём говорят десять страниц обсуждения на официальном форуме Microsoft Answer.
                          Читать дальше →
                        • Три суперпростых способа удивить ребенка, имея под рукой только смартфон (ну, почти)

                            Обычно, когда мы (или кто-то еще) пишет о детских гаджетах, всегда как бы по умолчанию мы имеем в виду возраст — около 7 лет. Так в подборки и попадают разного рода электронные конструкторы, платы для программирования и т. п.



                            Что делать, если детям от 3 до 5? Наша подборка простых развлечений из новой рубрики «Geektimes для самых маленьких».
                            Читать дальше →
                          • Реактивные приложения с паттерном RxPM. Прощайте​ MVP и MVVM

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


                              Все знакомы с MVP и MVVM, но мало кто знает, что MVVM является логическим развитием паттерна Presentation Model. Ведь единственное отличие MVVM от PM – это автоматическое связывание данных (databinding).


                              В этой статье речь пойдет о паттерне Presentation Model с реактивной реализацией биндинга. Некоторые ошибочно называют его RxMVVM, но корректно будет называть его RxPM, потому что это модификация шаблона Presentation Model.


                              Этот паттерн удобно использовать в проектах с Rx, так как он позволяет сделать приложение по-настоящему реактивным. Кроме того, он не имеет многих проблем других паттернов. На диаграмме ниже представлены различные варианты и классификации шаблонов представления:



                              Читать дальше →
                            • Инструкция по публикации Android-приложения в Google Play

                              • Tutorial
                              Вслед за инструкцией по публикации приложения в App Store выкладываем внутренний свод правил Лайв Тайпинг по публикации приложений в Google Play, составленный отделом менеджеров при активном участии тимлида отдела Android-разработки Александра Мирко. Вне зависимости от того, насколько ты крутой и опытный проджект-менеджер, всегда есть шанс забыть что-нибудь. Эта инструкция призвана облегчить вам жизнь.

                              Итак, что нужно сделать PM`y в ходе публикации:

                              1. Создать аккаунт в Google Play Developer Console для заказчика, если у заказчика такового нет, или предложить произвести публикацию с нашего аккаунта.
                              2. Оформить privacy policy.
                              3. Подготовить маркетинговые материалы (иконка, скриншоты, APK, баннер, текст, проморолик).
                              4. Обеспечить сборку наличием сертификата цифровой подписи.
                              5. Настроить оплату за пользование приложения.
                              6. Отправить сборку в Google Play.

                              Все подробности — под катом.

                              UPD от 25.04.2017: добавлены разделы про альфа- и бета-тестирование и поэтапное внедрение, дополнены разделы «Обеспечение сборки наличием цифровой подписи» и «Технические требования к apk-файлу», сделано замечание про ASO и внесены косметические правки.


                              Читать дальше →
                            • Аутентификация OAuth2 в приложении посредством Google Sign-In. Непрерывный доступ к API Google

                              «С 20 апреля 2017 года отправка запросов на авторизацию из встроенных браузеров будет блокироваться».
                              Такое сообщение с 1 марта можно увидеть в некоторых приложениях, где необходима авторизация. Об этом Google написали в своём блоге еще в августе 2016, и это значит, что скоро во многих приложениях придется переписывать реализацию регистрации. Приятного мало, однако выход есть – использовать рекомендуемый способ авторизации Google Sign-in.

                              Об этом способе и будет идти речь в уроке, а также как получить токены, необходимые для работы с API Google.
                              Читать дальше →
                              • +24
                              • 40.6k
                              • 3