• Современная Android разработка на Kotlin. Часть 1

    • Перевод
    Данная статья является перевом статьи от 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
    • 11,9k
    • 6
  • Если вместо оформления на работу предлагают открыть ИП

    Я сейчас в поисках работы программиста в Москве. И мне звонят некоторые кадровые агентства и интересуются есть ли у меня ИП, так как их клиент-работодатель вместо трудового договора с работниками заключает договоры оказания услуг или субподряда с ИП или ООО с одним учредителем, я их буду называть ИП в дальнейшем. ИП у меня нет, но есть не приносящее дохода ООО, где я веду бухучет самостоятельно. Поэтому и знаю, что это такое, какие именно налоги нужно платить и почему эта схема в России не законна и чем все это грозить горе-работнику, который на это согласился. Еще раз повторяю, я не юрист, а программист; то, что я опишу ниже, вполне могло устареть, измениться и т.п., и, если в комментариях укажут действующую норму, я не буду против.
    Читать дальше →
  • Налоги при продаже приложений и рекламы Google

    • Tutorial
    image

    Продолжаем серию заметок о налогах при монетизации мобильных приложений на зарубежных площадках.

    В прошлой статье Какие налоги нужно платить при выводе доходов от приложений в Apple iTunes мы кратко изложили алгоритм расчета налогов при получении дохода в iTunes Apple. Теперь предлагаем обсудить налоги с продаж приложений Google Play и рекламы Google AdSense.

    Руководствоваться будем следующими договорами с Гугл, которые есть в официальном русском переводе на сайте корпорации:


    Подробности под катом.
    Читать дальше →
  • Введение в часто используемые особенности ES6. Часть 2

    • Tutorial

    Данная публикация является 2-ой частью перевода статьи «Introduction to commonly used ES6 features» под авторством Zell Liew, размещенного здесь. Перевод 1-ой части находится здесь.


    Деструктуризация


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


    Деструктуризация объектов


    Допустим, имеется следующий объект:


    const Zell = {
      firstName: 'Zell',
      lastName: 'Liew'
    }
    

    Читать дальше →
  • Объясняем современный JavaScript динозавру

    • Перевод


    Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


    Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


    Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


    Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

    Читать дальше →
  • Разработка браузерной онлайн игры без фреймворков и движков


      Привет, Хабр!

      В этом посте будет описан процесс разработки онлайн игры на чистом javascript и WebGL (без фреймворков и движков). Будут рассмотрены некоторые алгоритмы, техники рендеринга, искусственный интеллект ботов и сетевая игра. Проект является полностью опенсорсным, в конце поста будет ссылка на репозиторий.
      Много картинок и гифок
    • Деловая переписка на английском языке: фразы и советы

        Елена Соловьева, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

        Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
        Читать дальше →
      • Пишем движок трёхмерного ретро-шутера с нуля

        • Перевод

        Мне всегда нравились классические шутеры от первого лица 90-х. Я часами просиживал за моим 386-м, играя Doom, потрясённый тем, как кому-то удалось написать код, отрисовывающий на моём экране 3D-графику в реальном времени с отличным разрешением 320x200. Я немного знал программирование (только что начал изучать BASIC), поэтому осознавал, что глубоко внутри это всего лишь куча математики и байтов, записываемых в видеопамять. Но в то время даже массивы для меня были довольно сложным понятием, поэтому я не мог даже начать постигать всю сложность 3D-рендеринга.

        В то время все писали 3D-движки с нуля, потому что другого способа не было. Но сегодня написание логики 3D-рендеринга с нуля скорее всего окажется плохой идеей. Очень плохой. Почти как изобретение колеса! При наличии огромного количества 3D-движков и библиотек, намного более хорошо протестированных и оптимизированных, чем то, что вы можете сделать сами, нет никаких причин для разумного разработчика начинать писать собственный движок.

        Если только…

        Представьте, что вы можете вернуться в машине времени назад в 90-е, когда ещё не было OpenGL и DirectX, не было видеопроцессоров. Всё что у вас есть — ЦП и экран, заполненный пикселями. Вам всё придётся писать самому.

        Если эта идея кажется вам интересной, то вы не одиноки: это именно то, что можно сделать на такой выдуманной консоли, как TIC-80.
        Читать дальше →
      • Введение в часто используемые особенности ES6. Часть 1

        • Tutorial

        Данная публикация является переводом статьи «Introduction to commonly used ES6 features» под авторством Zell Liew, размещенного здесь. Перевод разделён на 2 части. Перевод 2-ой части находится здесь.


        JavaScript серьезно развился в последние несколько лет. Если вы изучаете язык в 2017 году и при этом не касались ECMAScript 6 (ES6), то упускаете легкий способ читать и писать на нём.


        Не волнуйтесь, если вы еще не знаток языка. От вас не требуется превосходно знать его, чтобы пользоваться преимуществами «бонусов», добавленных в ES6. В этой статье хотел бы поделиться восемью особенностями ES6, которые использую каждый день как разработчик, что поможет вам легче погрузиться в новый синтаксис.


        Читать дальше →