• Почему брать кредиты выгодно?

      Все наверняка слышали фразы типа «Кредиты — кровь бизнеса». С другой стороны, народная мудрость говорит: «Берешь чужое и на время, а отдаешь своё и навсегда».

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

      Кредит для бизнеса и кредит для потребителя — немножко разные кредиты ;)

      Под катом — простой пример работы финансового рычага. Многим он покажется слишком очевидным, но, надеюсь, кто-то найдет пользу для себя.

      Как это работает?
    • Тяжела ли работа программиста — взгляд с точки зрения психофизиологии

      Во первых словах:
      — Работа программистом-разработчиком — тяжелый труд, сравнимый с валкой леса топором. И проблематика данного труда сильно недооценена в общественном сознании.
      Сейчас я обосную этот тезис с научной точки зрения.


      Читать дальше →
    • Dagger 2 для начинающих Android разработчиков — Введение

      • Перевод
      Данная статья является первой частью серии статей, предназначенных, по словам автора, для тех, кто не может разобраться с внедрением зависимостей и фреймворком Dagger 2, либо только собирается это сделать. Оригинал написан 18 ноября 2017 года. Изображения и GIF — из оригинала. Перевод вольный.

      image
      Читать дальше →
      • +3
      • 55,8k
      • 6
    • Несколько книг для начинающего и продолжающего разработчика под Android

        Android books


        В прошлом году я входил в миры Android. Помимо изучения исходников, документации, статей, блогов, аудио- и видео-материалов по теме, читал книги. Спешу поделиться читательским опытом.


        Под катом небольшой обзор восьми книг. Темы следующие:


        1. RxJava
        2. Потоки в Android
        3. Разработка под Android на Java
        4. Kotlin. Обзор языка
        5. Kotlin. Практика
        6. Kotlin. Обзор языка с уклоном на Android
        7. Разработка под Android на Kotlin
        8. Rx в Kotlin
        Читать дальше →
      • Используем RxJava и Retrofit на Android, учитывая поворот экрана

        Решил я однажды таки попробовать дико популярный нынче Rx. А заодно и Retrofit. И посмотреть, как с их помощью реализовать стандартную задачу: получить с сервера набор данных, отобразить их и при этом ничего не терять при поворотах экрана и не делать лишних запросов. Первый вариант у меня получился сразу почти — просто взял и вызвал cache() на Observable, получаемый из синглтона, но он меня не устраивал — для принудительного обновления приходилось, по какой-то причине, пересоздавать экземпляры классов Retrofit и его же реализации моего интерфейса для API. Пересоздание же самого Observable эффекта не давало — всегда возвращались старые данные вместо запуска нового сетевого запроса и получения новых данных.


        После долгих мучений с новой для себя технологией выяснил, что во всём был виновен cache() (точнее, наверное, моё неправильное оного понимание). В итоге сделал так: фрагмент запускает метод, подписывающий Subscriber синглтона на Observable retrofit-a, коий запускает onNext и onError BehaviorSubject-a, на который подписывается уже Subscriber фрагмента. Код на GitHub тут, подробности — под катом.

        Читать без регистрации и СМС
      • Грокаем RxJava, часть четвертая: Реактивный Android

        • Перевод
        В первой, второй и третьей частях я объяснил в общих чертах устройство RxJava. Вы можете подумать: «Прекрасно, но как всё это сделать полезным для меня, как для разработчика под Android?» В заключительной части статьи я приведу некоторую информацию, практичную именно для вас.

        RxAndroid


        RxAndroid — это расширение RxJava, написанное специально для Android, которое включает в себя специальные обвязки вокруг RxJava, делающие вашу жизнь проще.

        Во-первых, здесь есть класс AndroidSchedulers, предоставляющий готовые планировщики для потоков, специфичных для Android. Нужно запустить код на UI потоке? Без проблем — воспользуйтесь AndroidSchedulers.mainThread():

        retrofitService.getImage(url)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(bitmap -> myImageView.setImageBitmap(bitmap));
        
        Читать дальше →
      • Введение в RxJava: Почему Rx?

        Этот цикл статей предназначен для знакомства начинающего реактивного программиста с мощью библиотеки RxJava ˜— реализации принципов реактивного программирования для JVM. Это перевод обширного туториала по RxJava Крисса Фруссиоса, основанного на IntroToRx для Rx.NET.


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


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

        Читать дальше →
      • 25 Android-библиотек, которыми определенно стоит воспользоваться в начале 2017 года

        • Перевод
        Вот список 25 Android-библиотек, релиз которых состоялся в январе-феврале 2017 года. Все они достойны внимания, место в списке не определяется значимостью. Приступим!


        Читать дальше →
        • +23
        • 43,2k
        • 9
      • Android Tips and Tricks

          В данном материале можно будет увидеть различные инструменты и подсказки, которые здорово облегчают жизнь Android разработчикам. Большая часть собрана напрямую от знакомых разработчиков и содержит вещи, которые должен знать каждый. Дополнения и расширения приветствуются, и если вы знаете о каком-то крутом механизме, который не был упомянут в статье, не поленитесь перейти в оригинал и открыть pull request.
          Читать дальше →
        • Руководство для начинающих VR-разработчиков

          • Перевод
          • Tutorial


          В этом руководстве собраны базовые ссылки и рекомендации, которые могут послужить вам точкой отсчёта в освоении VR-разработки.

          1. Изучаем оборудование


          Спросите себя: меня интересует разработка для десктопных устройств, наподобие HTC Vive, или меня больше привлекают мобильные устройства вроде Samsung Gear VR или Google Cardboard? Если вы пока не определились, то почитайте обзоры и подумайте о том, что лучше выбрать для вашего рынка. Если для ваших идей требуются контроллеры движения или качественная графика, то ориентируйтесь на подключаемые к компьютеру очки VR. Модели, которые сегодня поддерживаются движками Unity, Unreal и веб-реaлизациями:
          Читать дальше →
          • +30
          • 97,7k
          • 9
        • Визуальный генератор регулярных выражений

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

          Большинство из нас, впервые столкнувшись с данной проблемой, начинают забивать в поисковых системах что-то типа: «regexp online generator» и к своему великому сожалению осознают что гугл сломался все результаты в поиске являются сервисами для проверки корректности уже составленного регулярного выражения (или я плохо гуглил).

          А как же составить это самое регулярное выражение?


          image

          До недавнего времени существовало 2 ответа на этот вопрос:

          1. Изучить документацию по регулярным выражениям и составить регулярку самому
          2. Попросить кого-то более опытного сделать это за вас

          Теперь, после нескольких месяцев разработки, рад представить и 3-й ответ:

          » Генератор регулярных выражений

          История


          Давным давно, в одном проекте пришел довольно интересный и сложный запрос от внутренних пользователей. Персоналу технической поддержки нужно было самим задавать правила валидации для определенных полей, разным пользователям. Правила должны были часто и очень оперативно изменяться.
          Читать дальше →
        • Шишки и грабли Android-разработчика за 2 года

          • Перевод
          image

          Я ясно помню тот день в далеком 2014 году, когда я решил заняться программирование под Android. Это оказалось лучшим решением, которое я принял в моей жизни. Уже прошло почти два с половиной года, и за это время у меня возможность кое-чему научиться.

          Когда я только начал, я не знал никого, кто мог бы научить меня, показать, как правильно нужно делать. И я совершил МНОЖЕСТВО ошибок, в так же потратил кучу времени на то, чтобы потом их исправить.

          Полтора года спустя, мне выпал шанс поработать с очень талантливыми и опытными Android-разработчиками, которые направляли меня и помогли мне привести все в порядок. Эти две составляющие научили меня многому. Я понял, что надо ДЕЛАТЬ, а самое главное, что НЕ НАДО.

          И уже какое-то время я, как могу, стараюсь помогать другим разработчикам — прямо или косвенно. Вот мои профили: StackOverflow и Github.

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

          Предупреждение: в этой статье я затрону Android, а также идеи и результаты программирования, так что если вы не знакомы с одним из этих пунктов, то вам может быть неинтересно дочитывать статью до конца. Остальные, просто читайте.
          Читать дальше →
        • Android Dev: продолжение подкастов о профессиональной разработке под Android

            Привет, Хабр! В школах начинается новый учебный год, коллеги возвращаются из отпусков, а мы начинаем новый сезон наших подкастов о разработке под Android! Как известно, андроид разработчики делятся на две категории: кто слушает наш подкаст и кто о нем еще не слышал. Данная статья как раз для того, чтобы восполнить ваши пробелы непрослушанных выпусков и привлечь новых слушателей, с новыми комментариям к нашим обсуждениям. В новом сезоне мы снова окунемся с головой в большие темы, требующие детального разбора, но и не забудем держать слушателей в курсе последних новостей.

            Но прежде, чем анонсировать темы предстоящих выпусков, мы пройдемся по прошлым четырнадцати, ведь многие из них до сих пор не теряют свою актуальность и рекомендованы к прослушиваю каждому, кто не безразличен к разработке приложений под Android.
            Читать дальше →
            • +16
            • 12,4k
            • 8
          • Оптимизируем свои трудозатраты при разработке приложения в Google Material Design

            • Tutorial


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

            Итак, перед нами стоит задача: опираясь на готовые решения в открытом доступе, максимально оптимизировать затраченный труд на разработку приложения в стиле Google Material Design.
            что удалось откопать...
          • 5 UI фишек для современного Андроид приложения. Код, идеи и живой пример

              image

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

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

              Когда я впервые столкнулся с разметкой макетов в Android, со всеми этими FrameLayout, LinearLayout, RelativeLayout. С понятиями веса и гравитации для элементов интерфейса. Я недоумевал, почему нельзя было сделать так, как давно уже делается в html. Где есть возможность указать разметку в процентах? И вот, наконец такая возможность появилась. Появилась она конечно не вчера, но я на нее наткнулся только сейчас, и статей на хабре, с чем это едят не нашел.

              image

              Итак, что же нужно для того, чтобы пощупать это счастье? Нужно совсем немного, открыть build.gradle своего приложения, добавить туда строку

              dependencies {
                  compile 'com.android.support:percent:23.4.0'
              }

              и выполнить синхронизацию.

              Всё, все прелести разметки в процентах вам доступны, по крайней мере для minSDK 14 (меньше я не проверял).
              Читать дальше →
              • +23
              • 11,4k
              • 3
            • Кулуары VR. Библиотеки для отображения панорам 360*

              • Tutorial


              Всем привет! VR нынче в тренде, тема злободневная, различных проектов и способов реализовывать отображение трёхмерной картинки, кажется, скоро будет миллион. Сегодня у нас в гостях Михаил Вайсман, основатель компании по разработке мобильных приложений Trinity Digital. Он вызвался рассказать про работу с библиотеками для отображения 360-градусных панорам, за что мы выражаем ему признательность. Ладно, вы все пришли сюда за интересным опытом, а не за контентом до ката. ;)

              Передаём слово Михаилу
            • Vector Drawable API. Возможности применения

              • Tutorial
              2014 год был особенным для всех, кто занимается разработкой под Android — он принес одно из самых значимых обновлений Android за всю его историю, версию Android 5.0. С этим обновлением мы получили новый визуальный язык, детальные гайдлайны, множество новых API и инструментов. И, как всегда в случае таких массивных обновлений, не все новшества сразу пробивают себе дорогу в реальные проекты. Где-то мешает инерция мышления разработчиков, привыкших решать определенные задачи определенным образом, где-то — отсутствие документации по новым API, где-то — отсутствие поддержки новых возможностей на старых версиях платформы. Но время не стоит на месте и благодаря труду команды Android, а также независимых разработчиков, такие API постепенно обретают обратную поддержку. И сегодня я хочу рассказать об API векторной графики Android, который способен серьезно облегчить жизнь разработчика, но при этом до сих пор не пользуется популярностью.

              векторный Android


              Читать дальше →
            • 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками

              • Перевод

              image
              Маргарет Гамильтон стоит рядом с написанным ей исходным кодом бортового компьютера «Аполлона»


              Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.


              В JPL пишут на Си, и на их сайте есть документ "JPL Institutional Coding Standard", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в Хекслете постоянно говорим об этом в вебинарах и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «Основы программирования», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.


              Спасибо хабраюзеру Boletus за важную поправку и дополнение:
              В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего стандарта, наряду с MISRA C и другими дополнениями. Статья в Википедии.


              Вот перевод этого списка.

              Читать дальше →
            • Внедряем материальный дизайн

                Настало время переходить на Lollipop, друзья. Как бы смешно это не звучало.

                image

                Буквально вчера мы в Surfingbird обновили дизайн приложения и сегодня, по свежим следам, хотелось бы поделиться впечатлениями от перехода на material design.
                Читать дальше →