Sharing - утилита (NodeJS) командной строки, которая шарит директорию или файлы для iOS или Android устройств. Без необходимости устанавливать на них дополнительное приложение.
Sharing на GitHub: https://github.com/parvardegr/sharing
Платформа: разработка
⭐️: 589
Sharing на GitHub: https://github.com/parvardegr/sharing
Платформа: разработка
⭐️: 589
Как не настоящий программист решил на досуге порешать Leetcode на Swift. Первая задача - сумма двух. Дан массив целых чисел nums и целое число target, нужно вернуть индексы двух чисел из массива, которые в сумме образуют target.
Решение
Первое приходящее на ум решение — сделать два вложенных цикла, в которых перебирать массив, поочередно складывая числа и сравнивая получившееся с целевым значением.
Вот мое решение:
Лучший результат на Leetcode:
• Время выполнения: 77 мс
• Скорость выполнения — лучше 66.47% всех решений
• Потребление памяти — лучше 90.65% решений.
Что интересного из решения я узнал:
• Break не выходит сразу из всех циклов, нужно определять внешний и из него выходить.
• Можно оптимизировать перебор хотя бы на 2 элемента, чего многие (судя по показателям) не делают даже в этом подходе.
• На самом деле результат Leetcode — плавающий и зависит от каких-то внутренних факторов. В следующий раз может быть другое время выполнения и другое потребление памяти, так что, наверное, стоит даже с одним и тем же кодом сделать несколько подходов в оценке.
Неплохо, но, очевидно, по скорости где то есть возможности для улучшения. Что можно улучшить в моем коде? Какой бы иной подход вы предложили?
Продолжение: https://apptractor.ru/twosum
Решение
Первое приходящее на ум решение — сделать два вложенных цикла, в которых перебирать массив, поочередно складывая числа и сравнивая получившееся с целевым значением.
Вот мое решение:
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var resultA = [Int]()
outerLoop: for i in 0...nums.count - 2 {
for j in (i+1)...nums.count - 1 {
// Поиск суммы
if ((nums[i] + nums[j]) == target) {
resultA.append(i)
resultA.append(j)
break outerLoop
}
}
}
return resultA
}
}
• Время выполнения: 77 мс
• Скорость выполнения — лучше 66.47% всех решений
• Потребление памяти — лучше 90.65% решений.
Что интересного из решения я узнал:
• Break не выходит сразу из всех циклов, нужно определять внешний и из него выходить.
• Можно оптимизировать перебор хотя бы на 2 элемента, чего многие (судя по показателям) не делают даже в этом подходе.
• На самом деле результат Leetcode — плавающий и зависит от каких-то внутренних факторов. В следующий раз может быть другое время выполнения и другое потребление памяти, так что, наверное, стоит даже с одним и тем же кодом сделать несколько подходов в оценке.
Неплохо, но, очевидно, по скорости где то есть возможности для улучшения. Что можно улучшить в моем коде? Какой бы иной подход вы предложили?
Продолжение: https://apptractor.ru/twosum
AppTractor
Задачи с собеседований: Leetcode — Сумма двух
Задача Дан массив целых чисел nums и целое число target, нужно вернуть индексы двух чисел из массива, которые в сумме образуют target. Каждый массив точно будет иметь ровно одно решение и нельзя использовать один и тот же элемент дважды. Вы можете вернуть…
Expandable Compose Calendar - кастомизируемый красивый календарь для Jetpack Compose проектов.
Expandable Compose Calendar на GitHub: https://github.com/mateusz800/Expandable-Compose-Calendar
Платформа: Android
⭐️: 12
Expandable Compose Calendar на GitHub: https://github.com/mateusz800/Expandable-Compose-Calendar
Платформа: Android
⭐️: 12
Готовимся к собеседованиям в западных компаниях — курсы и обучающие материалы
Тред от Евгения Мацюка, в котором он собрал различные ресурсы для подготовки к собеседованиям в западных компаниях.
Статья: https://apptractor.ru/sbstrd
Платформа: разработка/обучение/собеседование
Тред от Евгения Мацюка, в котором он собрал различные ресурсы для подготовки к собеседованиям в западных компаниях.
Статья: https://apptractor.ru/sbstrd
Платформа: разработка/обучение/собеседование
This media is not supported in your browser
VIEW IN TELEGRAM
Inject - быстрая перезагрузка (“Hot reloading”) для приложений с UIKit, AppKit и Swift. Позволяет не перекомпилировать все приложение при изменении кода, а быстро видеть обновление на конкретном экране.
Inject на GitHub: https://github.com/krzysztofzablocki/Inject
Платформа: iOS
⭐️: 1.2K
Inject на GitHub: https://github.com/krzysztofzablocki/Inject
Платформа: iOS
⭐️: 1.2K
👍2
Forwarded from Код Воробья для iOS разработчиков
В Xcode 14 добавили экспорт локализации пакетов. Подробнее в туториале по локализации.
Это новый туториал на сайте, мы сделали большой ультимативный гайд по локализации. Разобрали основы, экспорт и импорт, как локализовать SPM-пакеты, плюрализацию, картинки, плагины для авторгенерации.
В конце туториала узнаете почему для некоторых российский рубль показывается как ₽, а для некоторых RUB.
Это новый туториал на сайте, мы сделали большой ультимативный гайд по локализации. Разобрали основы, экспорт и импорт, как локализовать SPM-пакеты, плюрализацию, картинки, плагины для авторгенерации.
В конце туториала узнаете почему для некоторых российский рубль показывается как ₽, а для некоторых RUB.
👍3🔥1👏1
Реверс инжиниринг кормушки для кошек для повышения производительности разработки
Интересный проект - система, которая выдает конфетки при каждом коммите.
Статья: https://apptractor.ru/progcorm
Платформа: разработка
Интересный проект - система, которая выдает конфетки при каждом коммите.
Статья: https://apptractor.ru/progcorm
Платформа: разработка
👍2
Как подружить фичу Autoplay и tvOS?
Autoplay — это когда по завершении просмотра одного фильма пользователю предлагается посмотреть похожий контент, рекомендованный системой.
О нюансах реализации этой фичи на tvOS рассказала Валерия Рублевская, iOS-разработчик на проекте онлайн-кинотеатра KION от МТС.
Прочитать можно здесь.
Autoplay — это когда по завершении просмотра одного фильма пользователю предлагается посмотреть похожий контент, рекомендованный системой.
О нюансах реализации этой фичи на tvOS рассказала Валерия Рублевская, iOS-разработчик на проекте онлайн-кинотеатра KION от МТС.
Прочитать можно здесь.
Хабр
Как мы улучшали функциональность онлайн-кинотеатра на tvOS
Всем привет, меня зовут Валерия Рублевская, я iOS-разработчик на проекте онлайн-кинотеатра KION в МТС Digital . Это третья часть рассказа о фиче Autoplay фильмов и сегодня мы поговорим о нюансах ее...
Text Flow - библиотека Jetpack Compose, которая позволяет отображать текста, обтекающий изображение (или любой другой Composable).
Text Flow на GitHub: https://github.com/oleksandrbalan/textflow
Платформа: Android
⭐️: 37
Text Flow на GitHub: https://github.com/oleksandrbalan/textflow
Платформа: Android
⭐️: 37
Fusion - это простая библиотека внедрения зависимостей (Dependency Injection) для Swift. Она использует обертки свойств, чтобы упростить внедрение, чтобы вы могли поддерживать свой код тестируемым и модульным. DI позволяет вам определять службы в одном месте, чтобы вы могли легко менять их для других реализаций в будущем или во время тестов.
Fusion на GitHub: https://github.com/alchemy-swift/fusion
Платформа: iOS
⭐️: 20
Fusion на GitHub: https://github.com/alchemy-swift/fusion
Платформа: iOS
⭐️: 20
Советы Junior-разработчикам
Общие советы для Junior-разработчиков
1. Код не главное
2. Дизайн программного обеспечения имеет значение
3. Используйте ЛУЧШИЕ практики
Технические советы для Junior-разработчиков
4. Пишите тесты
5. Не используйте наследование для повторного использования кода
6. Пишите объектно-ориентированный код
7. Пишите функциональный код
8. Используйте информированное дублирование
9. Типы, имена и комментарии
Статья: https://apptractor.ru/jnrcd
Платформа: программирование
Общие советы для Junior-разработчиков
1. Код не главное
2. Дизайн программного обеспечения имеет значение
3. Используйте ЛУЧШИЕ практики
Технические советы для Junior-разработчиков
4. Пишите тесты
5. Не используйте наследование для повторного использования кода
6. Пишите объектно-ориентированный код
7. Пишите функциональный код
8. Используйте информированное дублирование
9. Типы, имена и комментарии
Статья: https://apptractor.ru/jnrcd
Платформа: программирование
AppTractor
Советы Junior-разработчикам
В этой статье упоминаются и даются ссылки на множество ценных концепций, которые вы можете исследовать дальше по своему усмотрению.
This media is not supported in your browser
VIEW IN TELEGRAM
Compose RatingBar - библиотека со звездочками для оценки чего-либо. Может использовать любые PNG или ImageVectors, конечно есть разные настройки и даже эффект мерцания.
Compose RatingBar на GitHub: https://github.com/SmartToolFactory/Compose-RatingBar
Платформа: Android
⭐️: 9
Compose RatingBar на GitHub: https://github.com/SmartToolFactory/Compose-RatingBar
Платформа: Android
⭐️: 9
13 стандартов code review
В этой статье мы кратко рассмотрим 13 стандартов code review, которые могут значительно улучшить состояние вашего программного обеспечения, а также сделать ваших разработчиков счастливее.
Статья: https://apptractor.ru/13rw
Платформа: разработка
В этой статье мы кратко рассмотрим 13 стандартов code review, которые могут значительно улучшить состояние вашего программного обеспечения, а также сделать ваших разработчиков счастливее.
Статья: https://apptractor.ru/13rw
Платформа: разработка
Codeface - инструмент визуализирует внутреннюю структуру, зависимости и показатели качества кода, чтобы помочь вам понять, улучшить и контролировать его.
Codeface в Mac App Store: https://apps.apple.com/app/id1578175415
Платформа: iOS/Xcode
⭐️: 4.0
Codeface в Mac App Store: https://apps.apple.com/app/id1578175415
Платформа: iOS/Xcode
⭐️: 4.0
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Image Cropper - редактор изображений, который может обрезать в статическом и динамическом режиме кропа, может использовать настраиваемые формы, векторы и другие изображения PNG в качестве маски изображения для обрезки, различные настройки.
Compose Image Cropper на GitHub: https://github.com/SmartToolFactory/Compose-Cropper
Платформа: Android
⭐️: 110
Compose Image Cropper на GitHub: https://github.com/SmartToolFactory/Compose-Cropper
Платформа: Android
⭐️: 110
Maple Diffusion запускает Stable Diffusion модели локально на устройствах macOS/iOS, используя Swift (Xcode 14 и iOS 16) и фреймворк MPSGraph. Maple Diffusion на последнем iPhone может генерировать изображения за несколько минут (около 2.3 с/шаг на iPhone 13 Pro).
Maple Diffusion на GitHub: https://github.com/madebyollin/maple-diffusion
Платформа: iOS
⭐️:177
Maple Diffusion на GitHub: https://github.com/madebyollin/maple-diffusion
Платформа: iOS
⭐️:177
Удаление функций без раздражения пользователей (и почему их следует удалять)
В этой статье я объясню, почему раздувание функций — это плохо и как удалять функции, не раздражая пользователей.
• Раздувание функций убивает продукт
• Больше функций может быть плохо
• Закон Хайрама
• Оценка удаления функций
• Удаление функций против невозвратных затрат
Статья: https://apptractor.ru/featdel
Платформа: управление продуктами
В этой статье я объясню, почему раздувание функций — это плохо и как удалять функции, не раздражая пользователей.
• Раздувание функций убивает продукт
• Больше функций может быть плохо
• Закон Хайрама
• Оценка удаления функций
• Удаление функций против невозвратных затрат
Статья: https://apptractor.ru/featdel
Платформа: управление продуктами
🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
CreditCardView — это красиво оформленное полностью настраиваемое представление для Android, которое позволяет разработчикам создавать пользовательский интерфейс, имитирующий настоящую кредитную карту.
CreditCardView на GitHub: https://github.com/KunikaValecha/CreditCardView
Платформа: Android
⭐️: 10
CreditCardView на GitHub: https://github.com/KunikaValecha/CreditCardView
Платформа: Android
⭐️: 10
👍1👎1
Мобильные приложения Pocket Casts теперь имеют открытый исходный код.
Запущенный в 2010 году, Pocket Casts быстро стал стандартом в индустрии подкастинга благодаря своим новаторским функциям для прослушивания, поиска и обнаружения подкастов, а также оптимизированному дизайну и параметрам настройки. Теперь каждый может помочь сделать его еще лучше, сообщая об ошибках, предлагая новые функции и отправляя пул реквесты для решения текущих проблем.
Pocket Casts iOS на GItHub: https://github.com/Automattic/pocket-casts-ios
Pocket Casts Android на GItHub: https://github.com/Automattic/pocket-casts-android
Платформа: iOS/Android
⭐️: 721
Запущенный в 2010 году, Pocket Casts быстро стал стандартом в индустрии подкастинга благодаря своим новаторским функциям для прослушивания, поиска и обнаружения подкастов, а также оптимизированному дизайну и параметрам настройки. Теперь каждый может помочь сделать его еще лучше, сообщая об ошибках, предлагая новые функции и отправляя пул реквесты для решения текущих проблем.
Pocket Casts iOS на GItHub: https://github.com/Automattic/pocket-casts-ios
Pocket Casts Android на GItHub: https://github.com/Automattic/pocket-casts-android
Платформа: iOS/Android
⭐️: 721
👍3
Протокольно-ориентированное программирование в Swift
Пингвин — это птица, но он не летает, как другие птицы. Все птицы ходят и летают, но пингвины плавают и ходят...
Статья: https://apptractor.ru/popswift
Платформа: программирование/iOS
➕ Еще про протокольно-ориентированное программирование
• Протокольно-ориентированное программирование в Swift 5.1
• Туториал по протокольно-ориентированному программированию в Swift 5.1
• Введение в протокольно-ориентированное программирование
Пингвин — это птица, но он не летает, как другие птицы. Все птицы ходят и летают, но пингвины плавают и ходят...
Статья: https://apptractor.ru/popswift
Платформа: программирование/iOS
➕ Еще про протокольно-ориентированное программирование
• Протокольно-ориентированное программирование в Swift 5.1
• Туториал по протокольно-ориентированному программированию в Swift 5.1
• Введение в протокольно-ориентированное программирование
🌚1🖕1