Многие софтверные компании — посмешище
Я занимаюсь программированием более двух десятилетий, и я работал как в компаниях, так и вне их. Я выполнял скучную работу в крупных финансовых и консалтинговых фирмах, а также работал над интересным графическим проектом для небольшой софтверной компании, которая производила классные инструменты для киностудий. Я могу вам сказать одно: многие «инженеры-программисты», особенно те, кто работает в действительно крупных компаниях, выполняют очень мало работы. На самом деле многим из них в основном платят за то, что они делают очень мало (заметьте, я сказал «многим», а не «все»).
Перевод: https://apptractor.ru/swftjk
Платформа: разработка
Я занимаюсь программированием более двух десятилетий, и я работал как в компаниях, так и вне их. Я выполнял скучную работу в крупных финансовых и консалтинговых фирмах, а также работал над интересным графическим проектом для небольшой софтверной компании, которая производила классные инструменты для киностудий. Я могу вам сказать одно: многие «инженеры-программисты», особенно те, кто работает в действительно крупных компаниях, выполняют очень мало работы. На самом деле многим из них в основном платят за то, что они делают очень мало (заметьте, я сказал «многим», а не «все»).
Перевод: https://apptractor.ru/swftjk
Платформа: разработка
Sankey - библиотека для iOS, которая позволяет рисовать диаграммы Санки (это тип блок-схемы, на которой ширина стрелок пропорциональна данным). Есть возможность строить графики для нескольких уровней, менять цвета или использовать градиенты, менять стиль меток, толщину нод и пр.
Sankey на GitHub: https://github.com/maxhumber/Sankey
Платформа: iOS
⭐️: 3
Sankey на GitHub: https://github.com/maxhumber/Sankey
Платформа: iOS
⭐️: 3
Начинаем работу с Flutter Casual Games Toolkit
Если вы когда-нибудь в качестве пет-проекта хотели изучить Flutter и одновременно сделать какую-нибудь простенькую казуальную игру, то самое время. Google представил Flutter Casual Games Toolkit - специальный шаблон, который вы можете использовать для создания собственной игры. Этот стартовый проект предоставляет готовые «свистелки и перделки», такие как главное меню, страница настроек, поддержку звука и т.д. К нему же прилагаются несколько примеров игр (пинбол и крестики-нолики), собственный открытый игровой движок (он существует еще с версии 2.8), видео туториал, обсуждение в Discord для разработчиков игр на Flutter.
Статья: https://apptractor.ru/fltgmkt
Платформа: Flutter
Если вы когда-нибудь в качестве пет-проекта хотели изучить Flutter и одновременно сделать какую-нибудь простенькую казуальную игру, то самое время. Google представил Flutter Casual Games Toolkit - специальный шаблон, который вы можете использовать для создания собственной игры. Этот стартовый проект предоставляет готовые «свистелки и перделки», такие как главное меню, страница настроек, поддержку звука и т.д. К нему же прилагаются несколько примеров игр (пинбол и крестики-нолики), собственный открытый игровой движок (он существует еще с версии 2.8), видео туториал, обсуждение в Discord для разработчиков игр на Flutter.
Статья: https://apptractor.ru/fltgmkt
Платформа: Flutter
👍2
MiStoryView - простая библиотека для реализации историй в вашем приложении. Из ключевых особенностей - управление жестами, анимации, индикаторы просмотра. Для полноценной реализации вряд ли подойдет, но для начала вполне.
MiStoryView на GitHub: https://github.com/Mindinventory/MIStoryView
Платформа: Android
⭐️: 21
MiStoryView на GitHub: https://github.com/Mindinventory/MIStoryView
Платформа: Android
⭐️: 21
👍1🤔1
Мой вопрос с кодинг интервью в Google
Я провел более 200 собеседований в Google и оценил более 50 пакетов с интервью. Ясно одно: проводить интервью тяжело. Сигналов слишком много. И у интервьюера, и у интервьюируемого есть меньше часа, чтобы сделать все возможное. Иногда по разным причинам мы получаем ложные или неточные сигналы. Такова природа человека.
За эти годы я остановился на одной задаче в программировании, которая мне очень нравится. Это хитрый, простой и одновременно сложный вопрос. Решение состоит не более чем из 30 строк кода, но дает мне сигналы, необходимые для получения надлежащей оценки. Вопрос также хорошо масштабируется от стажеров до старших инженеров. Я не хочу сказать, что мой вопрос лучше вашего, но попытаюсь объяснить, почему мой вопрос помогает мне как интервьюеру и что я ищу в техническом интервью.
Перевод: https://apptractor.ru/intrqst
Платформа: программирование/собеседование
Я провел более 200 собеседований в Google и оценил более 50 пакетов с интервью. Ясно одно: проводить интервью тяжело. Сигналов слишком много. И у интервьюера, и у интервьюируемого есть меньше часа, чтобы сделать все возможное. Иногда по разным причинам мы получаем ложные или неточные сигналы. Такова природа человека.
За эти годы я остановился на одной задаче в программировании, которая мне очень нравится. Это хитрый, простой и одновременно сложный вопрос. Решение состоит не более чем из 30 строк кода, но дает мне сигналы, необходимые для получения надлежащей оценки. Вопрос также хорошо масштабируется от стажеров до старших инженеров. Я не хочу сказать, что мой вопрос лучше вашего, но попытаюсь объяснить, почему мой вопрос помогает мне как интервьюеру и что я ищу в техническом интервью.
Перевод: https://apptractor.ru/intrqst
Платформа: программирование/собеседование
👍1
Colorue - простое, но эффективное open source приложение для рисования. Традиционно, если есть желание, можете присоединиться к развитию проекта.
Colorue на GitHub: https://github.com/colorue/ios
Платформа: iOS
⭐️: 14
Colorue на GitHub: https://github.com/colorue/ios
Платформа: iOS
⭐️: 14
🤔1
Видео Ozon Tech Mobile Meetup от 19 мая
Программа встречи:
• Александр Свиридов (Ozon), руководитель отдела разработки мобильных приложений "Покупатель": какие метрики собираются и как мы боремся за перформанс приложения Ozon.
• Владимир Шедько (Ozon), ведущий разработчик мобильных приложений: как мы в Ozon делали плавный скролл для нагруженного UI, и при этом не переверстали все приложение. Показывает необычные подходы, которые мы опробовали на практике, и что из этого получилось.
• Артем Новичков (Skyeng), iOS-разработчик: как работает новая модель многопоточности. На примерах разбирает, что нового появилось в Swift и как это подружить со своим кодом.
• Круглый стол
Видео: https://apptractor.ru/info/media/ozon-tech-mobile-meetup.html
Платформа: разработка
Программа встречи:
• Александр Свиридов (Ozon), руководитель отдела разработки мобильных приложений "Покупатель": какие метрики собираются и как мы боремся за перформанс приложения Ozon.
• Владимир Шедько (Ozon), ведущий разработчик мобильных приложений: как мы в Ozon делали плавный скролл для нагруженного UI, и при этом не переверстали все приложение. Показывает необычные подходы, которые мы опробовали на практике, и что из этого получилось.
• Артем Новичков (Skyeng), iOS-разработчик: как работает новая модель многопоточности. На примерах разбирает, что нового появилось в Swift и как это подружить со своим кодом.
• Круглый стол
Видео: https://apptractor.ru/info/media/ozon-tech-mobile-meetup.html
Платформа: разработка
ComposePPT - экспериментальный UI-тулкит для создания файлов презентаций PowerPoint (.pptx). Цели сделать что-то полезное у авторов, судя по описанию, не стояло, зато показывает силу Compose и учит некоторым навыкам обращения с фреймворком.
ComposePPT на GitHub: https://github.com/fgiris/composePPT
Платформа: Android
⭐️:111
ComposePPT на GitHub: https://github.com/fgiris/composePPT
Платформа: Android
⭐️:111
🤩1
Swift Algorithm Club - реализация популярных алгоритмов и структур данных на Swift с подробным объяснением того, как они работают.
Цель этого проекта — объяснить, как работают алгоритмы. Основное внимание уделяется ясности и удобочитаемости кода, а не созданию повторно используемой библиотеки, которую вы можете использовать в своих собственных проектах. Тем не менее, большая часть кода готова к использованию в рабочей среде, но вам может потребоваться настроить его, чтобы он вписался в вашу собственную кодовую базу.
Код совместим с Xcode 10 и Swift 4.2.
Swift Algorithm Club на GitHub: https://github.com/raywenderlich/swift-algorithm-club
Платформа: iOS/программирование
⭐️: 26.4K
Цель этого проекта — объяснить, как работают алгоритмы. Основное внимание уделяется ясности и удобочитаемости кода, а не созданию повторно используемой библиотеки, которую вы можете использовать в своих собственных проектах. Тем не менее, большая часть кода готова к использованию в рабочей среде, но вам может потребоваться настроить его, чтобы он вписался в вашу собственную кодовую базу.
Код совместим с Xcode 10 и Swift 4.2.
Swift Algorithm Club на GitHub: https://github.com/raywenderlich/swift-algorithm-club
Платформа: iOS/программирование
⭐️: 26.4K
👍3
Используете ли вы самый мощный инструмент Kotlin?
Одна из самых недооцененных возможностей Kotlin — от классов данных до перегрузки операторов — лямбда-функции высшего порядка. Поначалу они могут показаться бесполезным, поскольку мы можем просто определить функцию вместо функции для переменной. Но вот несколько удивительных вариантов использования лямбда-функций в Kotlin.
Перевод: https://apptractor.ru/ktllmbd
Платформа: Kotlin
👏: 250
Одна из самых недооцененных возможностей Kotlin — от классов данных до перегрузки операторов — лямбда-функции высшего порядка. Поначалу они могут показаться бесполезным, поскольку мы можем просто определить функцию вместо функции для переменной. Но вот несколько удивительных вариантов использования лямбда-функций в Kotlin.
Перевод: https://apptractor.ru/ktllmbd
Платформа: Kotlin
👏: 250
👍2
Compose Reports to HTML - CLI-утилита, для превращения метрик компилятора в красивые HTML-страницы. Плагин Compose Compiler генерирует отчеты/метрики на основе определенных концепций, специфичных для декларативного фреймворка, которые могут быть полезны для понимания того, что происходит с вашим кодом. Плагин создает их в файлах json, csv и txt, которые трудно отслеживать и понимать. Этот инструмент анализирует отчеты и метрики, сгенерированные компилятором Compose, преобразует их в HTML-страницы и показывает проблемные и непроблемные composable функции и классы.
Compose Reports to HTML на GitHub: https://github.com/PatilShreyas/compose-report-to-html
Платформа: Android
⭐️: 50
Compose Reports to HTML на GitHub: https://github.com/PatilShreyas/compose-report-to-html
Платформа: Android
⭐️: 50
Spiral — библиотека рисования спиралей в SwiftUI для macOS, iOS и watchOS. В ней есть генератор точек, Shape и View спирали. Генератор точек позволяет использовать данные для непосредственно рисования спирали по точкам. Shape может быть обведена или заполнена желаемым материалом. View позволяет размещать произвольные view в точках спирали.
Spiral на GitHub: https://github.com/buh/Spiral
Платформа: iOS
⭐️: 41
Spiral на GitHub: https://github.com/buh/Spiral
Платформа: iOS
⭐️: 41
👍1
Slack Clone - клон мессенджера, созданный с помощью Jetpack Compose и Stream Chat SDK в соответствии с принципами чистой архитектуры. Внутри 100% Jetpack с Compose, архитектурные компоненты, Room, корутины, Flow, Compose Chat SDK, Hilt, Retrofit2 & OkHttp3, Timber. Создано приложение, собственно, разработчиками Stream Chat SDK, который по большей части является платным компонентом.
Slack Clone на GitHub: https://github.com/GetStream/stream-slack-clone-android
Платформа: Android
⭐️:131
Slack Clone на GitHub: https://github.com/GetStream/stream-slack-clone-android
Платформа: Android
⭐️:131
Уроки 5 лет аудита кода стартапов
Когда я работал в PKC, наша команда провела более двадцати аудитов кода, многие для стартапов Серии A или B (обычно это было, когда у них были деньги, и они понимали, что было бы неплохо погрузиться глубже в их безопасность, уже после того, как они достигли product market fit).
Это была увлекательная работа — мы глубоко погружались в разнообразие стеков и архитектур в самых разных областях. Мы обнаруживали всевозможные проблемы с безопасностью, от катастрофических до просто интересных. У нас также была возможность пообщаться со старшим инженерным руководством и техническими директорами в целом о проблемах проектирования и продуктов, с которыми они столкнулись, когда они только начинали масштабироваться.
Перевод: https://apptractor.ru/16ls
Платформа: безопасность
Когда я работал в PKC, наша команда провела более двадцати аудитов кода, многие для стартапов Серии A или B (обычно это было, когда у них были деньги, и они понимали, что было бы неплохо погрузиться глубже в их безопасность, уже после того, как они достигли product market fit).
Это была увлекательная работа — мы глубоко погружались в разнообразие стеков и архитектур в самых разных областях. Мы обнаруживали всевозможные проблемы с безопасностью, от катастрофических до просто интересных. У нас также была возможность пообщаться со старшим инженерным руководством и техническими директорами в целом о проблемах проектирования и продуктов, с которыми они столкнулись, когда они только начинали масштабироваться.
Перевод: https://apptractor.ru/16ls
Платформа: безопасность
Видео Школы мобильной разработки Яндекса
Летом 2021 года прошла Школа мобильной разработки от Академии Яндекса: студенты слушали лекции, выполняли домашние задания и работали над реальными проектами бок о бок с менторами и ребятами других направлений. Курсы лекций рассчитаны на разработчиков, которые уже начали изучать основы разработки под iOS или Android и хотят углубить и систематизировать свои знания.
• iOS (14 видео)
• Android (16 видео)
Летом 2021 года прошла Школа мобильной разработки от Академии Яндекса: студенты слушали лекции, выполняли домашние задания и работали над реальными проектами бок о бок с менторами и ребятами других направлений. Курсы лекций рассчитаны на разработчиков, которые уже начали изучать основы разработки под iOS или Android и хотят углубить и систематизировать свои знания.
• iOS (14 видео)
• Android (16 видео)
👍2🔥2
Sourcery - платформа мета-программирования для Swift, позволяющая избавиться от повторяющегося кода, улучшить архитектуру и рабочие процессы разработки. Это генератор кода для языка Swift, построенный поверх собственного SwiftSyntax от Apple. Он расширяет языковые абстракции, позволяя автоматически генерировать шаблонный код.
Sourcery можно применять к произвольным проблемам в вашей кодовой базе - если вы можете описать алгоритм другому человеку, вы можете автоматизировать его с помощью Sourcery.
Sourcery на GitHub: https://github.com/krzysztofzablocki/Sourcery
Платформа: iOS
⭐️: 6.6K
Sourcery можно применять к произвольным проблемам в вашей кодовой базе - если вы можете описать алгоритм другому человеку, вы можете автоматизировать его с помощью Sourcery.
Sourcery на GitHub: https://github.com/krzysztofzablocki/Sourcery
Платформа: iOS
⭐️: 6.6K
Как улучшить качество кодовой базы
Зачем вообще писать «хороший» код? Потому что хороший код означает, что вашей команде придется тратить меньше времени на его чтение, а значит, обслуживание будет проще. Время = деньги, поэтому вашей компании придется тратить меньше, а вам не придется утомлять себя чтением сложного кода. Вы можете использовать эту нерастраченную энергию, чтобы создавать новые технологии, улучшать себя и повышать уровень счастья. Я называю это опытом разработчика (Developer Experience), который является побратимом пользовательского опыта (User Experience).
Перевод: https://apptractor.ru/gdcd
Платформа: разработка
👏: 105
Зачем вообще писать «хороший» код? Потому что хороший код означает, что вашей команде придется тратить меньше времени на его чтение, а значит, обслуживание будет проще. Время = деньги, поэтому вашей компании придется тратить меньше, а вам не придется утомлять себя чтением сложного кода. Вы можете использовать эту нерастраченную энергию, чтобы создавать новые технологии, улучшать себя и повышать уровень счастья. Я называю это опытом разработчика (Developer Experience), который является побратимом пользовательского опыта (User Experience).
Перевод: https://apptractor.ru/gdcd
Платформа: разработка
👏: 105
This media is not supported in your browser
VIEW IN TELEGRAM
Component Box - библиотека Kotlin Multiplatform для создания динамического Server-driven UI от Dropbox. Пока, видимо, в глубокой альфе, но развитие идет.
Component Box на GitHub: https://github.com/dropbox/componentbox
Платформа: Kotlin multiplatform/кроссплатформа
⭐️:123
Component Box на GitHub: https://github.com/dropbox/componentbox
Платформа: Kotlin multiplatform/кроссплатформа
⭐️:123
Первый взгляд на «песочницу конфиденциальности» Google и ее влияние на SDK
Первая предварительная версия для разработчиков, выпущенная пару недель назад, дает представление о том, как будут работать два из четырех компонентов в конструкции песочницы конфиденциальности - SDK Runtime и Topics API.
Я протестировал предварительную версию SDK Runtime — в этой статье я делюсь тем, что узнал, а также некоторыми мыслями о том, что нам следует ожидать. Конечно, поскольку это первая предварительная версия для разработчиков, все может измениться по мере того, как Google будет развивать инициативу.
Перевод: https://apptractor.ru/drdsndbx
Платформа: Android
👏: 487
Первая предварительная версия для разработчиков, выпущенная пару недель назад, дает представление о том, как будут работать два из четырех компонентов в конструкции песочницы конфиденциальности - SDK Runtime и Topics API.
Я протестировал предварительную версию SDK Runtime — в этой статье я делюсь тем, что узнал, а также некоторыми мыслями о том, что нам следует ожидать. Конечно, поскольку это первая предварительная версия для разработчиков, все может измениться по мере того, как Google будет развивать инициативу.
Перевод: https://apptractor.ru/drdsndbx
Платформа: Android
👏: 487
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
FloatingPanel — это выдвигающаяся панель, простой и удобный в использовании UI-компонент, представленный в приложении Apple Maps, Shortcuts и Stocks. Поддерживает пружинные анимации, отслеживание прокрутки, модальное представление, 4 позиции по разным сторонам экрана, “магнитные” якоря и т.п. Работает начиная с iOS 11.0.
FloatingPanel на GitHub: https://github.com/scenee/FloatingPanel
Платформа: iOS
⭐️: 4.9K
FloatingPanel на GitHub: https://github.com/scenee/FloatingPanel
Платформа: iOS
⭐️: 4.9K
Compressor — это легкая и мощная библиотека сжатия изображений для Android. Компрессор позволит вам сжимать большие фотографии в меньший размер с очень небольшой или незначительной потерей качества изображения.
Compressor на GitHub: https://github.com/zetbaitsu/Compressor
Платформа: Android
⭐️: 6.4K
Compressor на GitHub: https://github.com/zetbaitsu/Compressor
Платформа: Android
⭐️: 6.4K