• Как работать из дома. Чек-лист удаленщика

      В интернете огромное количество заметок на тему удаленной работы, с лаконичным обзором минусов, плюсов и известными советами, как вытащить себя из рутины, начиная с «Первым делом снимите пижаму». В блоге Surf мы уже затрагивали эту тему в статье моей коллеги, которая поделилась своим опытом, но с ростом количества удаленных сотрудников (и моим переходом на «удаленку» после 20-летнего опыта работы в офисе), я решила изучить вопрос глубже: читала зарубежные блоги про удаленную работу и пробовала разные идеи. Здесь поделюсь своим опытом, методами сохранения и повышения мотивации. А в конце статьи я приготовила небольшую памятку сотруднику home office.

      UPD: Начала писать статью еще до вируса в Ухане, а когда закончила, количество знакомых, которым пришлось перейти на удаленную работу резко увеличилось. Надеюсь, что мера временная и все будут здоровы.


      Читать дальше →
    • Проблемы инструментария в больших проектах


        Основной инструмент любого программиста — язык программирования. Когда начинался проект мы выбрали Swift. Решили идти в ногу со временем, старый, но так горячо любимый Objective-C остался не у дел. Однако у Swift есть небольшая проблема и особенно она становится заметной, когда проект начинает расти – это проблема времени сборки проекта. Для понимания проблемы и размеров проекта, попробуем сравнить среднее время сборки за неделю на всех проектах студии.

        Читать дальше →
      • Проблемы взаимодействия с внешними командами на больших проектах

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


          image

          Читать дальше →
        • Проблемы архитектуры в больших проектах

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


            Рассмотрим 5 важных тем. Конечно, большинство из них не раз обсуждались в сообществе, но за каждой из тем стоят боль, слезы, потерянное время и, самое главное, опыт, который оказался полезен для нас, и надеюсь, будет полезен и вам.


            image

            Читать дальше →
          • Находим потерянные файлы в нескольких Xcode таргетах

              Привет, я Саня — iOS-разработчик и в этой статье поделюсь своим способом решения головной боли, которая возникает при работе на проекте с несколькими таргетами.


              Читать дальше →
            • Разработка мобильного приложения без сервера

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

                Такая ситуация может происходить по разным причинам. Однако, чаще всего на старте разработки, бэкэнд просто не написан и клиент начинает без него. В таком случае начало разработки затягивается на 2-4 месяца

                Иногда сервер просто отключился (упал), иногда не успевает выкатывать нужные методы, иногда есть проблемы с данными и т.п. Все эти проблемы привели нас к написанию небольшого сервиса Mocker, который позволяет подменить реальный бэкэнд.


                Читать дальше →
              • Удаленка в IT: личный опыт

                  Сейчас все больше компаний готовы к найму удаленных сотрудников. Для работодателей это расширяет возможность выбора высококвалифицированных специалистов. В Surf найм удаленных сотрудников практикуется уже давно, на данный момент 40% работают дистанционно — разработчики и менеджеры. Удаленных QA мы не нанимаем из-за специфики мобильной разработки — нужен большой парк устройств, на которых проводится тестирование, и это сложно организовать дома. Процессы в Surf адаптировались к работе с удаленщиками в отлаженный механизм, который позволяет организовать эффективную работу над проектами.

                  image
                  Читать дальше →
                • Тестирование Flutter-приложений. Начало

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


                    Читать дальше →
                    • +10
                    • 4,1k
                    • 4
                  • Reactive Data Display Manager. Введение

                      Это первая часть из цикла статей о библиотеке ReactiveDataDisplayManager (RDDM). В этой статье я опишу частые проблемы, с которыми приходится сталкиваться при работе с «обычными» таблицами, а также дам описание RDDM.


                      Читать дальше →
                    • Edge-to-edge в Android: делаем правильно

                      • Tutorial
                      Прошедший Google I/O 2019 принёс массу нашумевших новинок, многие из которых будут влиять на индустрию мобильной разработки в ближайшие годы. Не менее интересно было следить за зарождающимися трендами. Сначала в историю ушли механические клавиши управления, экраны смартфонов становились всё больше, а боковые рамки всё незаметнее. На смену экранным системным кнопкам пришли жесты, оставляя всё больше пространства для потребления контента. Приложения отображаются на всей видимой поверхности дисплея, от нижней до верхней рамки, не стесняя себя условными границами статус-бара и навигационной панели. Мы на пороге эры Edge-to-Edge.


                      Читать дальше →
                      • +10
                      • 4,9k
                      • 2
                    • Обзор облачных сервисов для разработки бэкенда мобильных приложений

                        Разработка бэкенда — сложный и затратный процесс. При разработке мобильных приложений ему зачастую уделяется неоправданно больше внимания. Неоправданно, потому что каждый раз приходится реализовывать типичные для мобильных приложений сценарии: отправить push-уведомление, узнать сколько пользователей заинтересовались акцией и оформили заказ и т.п. Хочется решение, которое позволит сфокусироваться на важных для приложения вещах без потери качества и деталей в реализации второстепенных. И такие решения есть!

                        Подобные сервисы называются Mobile Backend-as-a-Service (MBaaS). Процессы создания бэкенда с их помощью упрощены, по сравнению с разработкой «вручную». Это экономия на найме отдельного backend-разработчика. А тот факт, что провайдер MBaaS берет на себя все вопросы, связанные со стабильностью серверов, балансировкой нагрузки, масштабируемостью и прочими инфраструктурами сложностями, придает уверенности в качестве полученного результата и является основным преимуществом таких сервисов.

                        В этой статье рассмотрим несколько крупных и зарекомендовавших себя сервисов: Microsoft Azure, AWS Amplify, Google Firebase, Kumulos.


                        Читать дальше →
                        • +11
                        • 4,6k
                        • 3
                      • ViewPager 2 — новая функциональность в старой обертке

                          ViewPager — один из самых известных и широко используемых компонентов Android Support Library. Все простейшие карусели, онбординги и слайдеры выполнены именно на нем. В феврале 2019 года команда разработки AndroidX выпустила ViewPager2. Давайте разберемся, какие у этого были предпосылки и какими преимуществами обладает обновленная версия компонента.


                          Читать дальше →
                        • Rekko Challenge 2019: как это было



                            Не так давно на платформе Boosters прошел контест рекомендательных систем от онлайн-кинотеатра Okko — Rekko Challenge 2019. Для меня это был первый опыт участия в соревновании с лидербордом (ранее пробовал силы только в хакатоне). Задача интересная и знакома мне из практики, призовой фонд есть, а значит, был смысл участвовать. В итоге я занял 14 место, за что организаторы выдали памятную футболку. Приятно. Спасибо.

                            В этой статье я кратко погружу вас в задачу, расскажу о выдвинутых мной гипотезах, а также о том, как затащить соревнование по рекомендательным системам и попасть в топ-15 без опыта стекинга, что будет особенно полезно тем, кто только собирается участвовать в контестах.
                            Читать дальше →
                            • +10
                            • 1,2k
                            • 2
                          • Создаем шаблон Xcode проекта

                              Всем привет, я Ваня — iOS-разработчик. В этой статье я расскажу о том, как создавать Xcode шаблоны проектов и о том, как они помогли сэкономить время на старте проекта.


                              Читать дальше →
                            • Организуем ML-проект с помощью Ocean

                                image


                                Вступление


                                За годы разработки ML- и DL-проектов у нашей студии накопились и большая кодовая база, и много опыта, и интересные инсайты и выводы. При старте нового проекта эти полезные знания помогают увереннее начать исследование, переиспользовать полезные методы и получить первые результаты быстрее.


                                Очень важно, чтобы все эти материалы были не только в головах разработчиков, но и в читаемом виде на диске. Это позволит эффективнее обучить новых сотрудников, ввести их в курс дела и погрузить в проект.


                                Конечно, так было не всегда. Мы столкнулись с множеством проблем на первых этапах


                                • Каждый проект был организован по-разному, особенно если их инициировали разные люди.
                                • Недостаточно отслеживали, что делает код, как его запустить и кто его автор.
                                • Не использовали виртуализацию в должной степени, зачастую мешая своим коллегам установкой существующих библиотек другой версии.
                                • Забывались выводы, сделанные по графикам, которые осели и умерли в горé jupyter-тетрадок.
                                • Теряли отчеты по результатам и прогрессу в проекте.

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


                                Вишенка на торте — логи проекта, которые агрегируются и превращаются в красивый сайт, автоматически собранный с помощью выполнения одной команды.


                                В статье мы расскажем на маленьком искусственном примере, из каких частей состоит Ocean и как его использовать.

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

                              Самое читаемое