• Android Devs Meetup 2: видео и презентации с прошедшей встречи



      5 августа в нашем московском офисе прошла вторая встреча Moscow Android Devs. Здесь собрались разработчики, желающие поделиться своим опытом и перенять опыт других, рассказать о различных затруднениях, с которыми они сталкивались в ходе разработки, и способах решения. В рамках официальной программы было три выступления, и далее вы найдете ссылки на видеозаписи и презентации.
      Читать дальше →
      • +15
      • 6.7k
      • 1
    • Best practices от Google по разработке Android приложений

      В данной статье я хотел бы вкратце рассказать про самые последние best practices от Google. Я постарался выделить самые основные моменты, чтобы читатель сразу мог понять, что именно какая-либо фича дает разработчику. Не удивляйтесь, если где-то повторяюсь. Конспектировал + добавлял от себя по ходу просмотров видео в www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg

      Также к каждому пункту приводятся все необходимые ссылки для более подробного ознакомления с конкретной best practice.
      Читать дальше →
    • Кофе с огурцами (Espresso + Cucumber)



            Относительно не так давно появилась замечательная библиотека Espresso для тестирования UI Android приложений. Её преимущества над аналогами обозревались не один раз. Если вкратце, то они заключаются в том, что это разработка Google для собственной ОС (ранее они сами использовали Robotium), а так же в лаконичности синтаксиса и скорости работы. Итак, мы решили идти в ногу со временем и использовать Espresso. Но нам мало тех плюсов, что уже есть, мы хотим BDD (http://en.wikipedia.org/wiki/Behavior-driven_development), мы хотим скриншотов и отчетов в json и html, мы хотим запускать это все на CI, в конце концов! Но обо всем по порядку. Я расскажу как подружить Cucumber (http://habrahabr.ru/post/62958/) и Espresso (http://habrahabr.ru/post/212425/) на небольшом примере. Всех, кто устал от Appium, кто хочет уйти от Robotium и тех, кому небезразлично тестирование Android, прошу под кат.
        Читать дальше →
        • +21
        • 20.9k
        • 5
      • PODAM Java объекты для Unit-тестирования

        • Tutorial


        Добрый день!
        При unit-тестировании часто сталкиваешься с необходимостью заполнять сложные объекты, чтобы возвращать их со стороны заглушек или наоборот — давать их на вход методам и тестам. Некоторые разработчики игнорируют get-set конвенции Java, а даже если геттеры и сеттеры есть, то заполнение объекта достаточно сложной структуры порой требует больше кода, чем сам тест. Это анти-паттерн Excessive Setup, и хочется научиться с ним бороться. В этой статье я расскажу, как с помощью библиотеки PODAM заполнять объекты быстро и красиво, продолжая идеи разумной рандомизации как входных данных для тестов, так и данных, возвращаемых заглушками — покажу на примерах, пороюсь в исходниках.
        Итак, чтобы долго не думать, но и не заниматься миром животных, сгенерим страну.
        Читать дальше →
      • Архитектура Android-приложений… Правильный путь?

        • Translation
        От переводчика: Некоторые термины, которые использует автор, не имеют общепринятого перевода (ну, или я его не знаю:), поэтому я решил оставить большинство на языке оригинала — они всё равно понятны и для тех, кто пишет под android, но не знает английский.
        Куда писать об ошибках и неточностях, вы знаете.


        За последние несколько месяцев, а также после дискуссий на Tuenti с коллегами вроде @pedro_g_s и @flipper83 (кстати говоря, 2 крутых Android-разработчика), я решил, что имеет смысл написать заметку о проектировании Android-приложений.

        Цель поста — немного рассказать о подходе к проектированию, который я продвигал в последние несколько месяцев, и также поделиться всем тем, что я узнал во время исследования и реализации этого подхода.
        Удиви меня
        • +29
        • 84k
        • 9
      • Что в ORM тебе моем? Околонаучный подход выбора ORM для Android

          Выбор инструментов, которые так или иначе понадобятся при разработке – один из главных подготовительных этапов на старте нового Android-проекта.
          В случае, если вы разрабатываете приложение, которое должно в том или ином виде хранить большое количество сущностей – вам не избежать использования баз данных. В отличие от коллег по цеху, разрабатывающих для iOS, у Android-программистов нет удобных инструментов, облегчающих хранение объектов вроде Core Data, предоставляемых платформой (кроме Content Provider, о том почему он не в счет, будет дальше). Поэтому многие Android-разработчики прибегают к использованию сторонних ORM-решений в своих проектах. О том, на что стоит смотреть при выборе библиотеки для вашего проекта, и пойдет речь в этой статье.


          Читать дальше →
        • Анимации c помощью Transitions API

            Привет!

            На хабре ещё не была освещена тема Transitions API для анимаций, которые появились в Android начиная с 4.4 (KitKat) и продолжили свое развитие в 5.0 (Lollipop). В своей статье я расскажу о том, как упростить работу с анимациями с их использованием и как применять их на любом устройстве с версией Android 4.0 и выше.


            Читать дальше →
          • Что такое утечки памяти в android, как проверить программу на их отсутствие и как предотвратить их появление

            • Tutorial
            В этой статье для начинающих android-разработчиков я постараюсь рассказать о том, что такое «утечки памяти» в android, почему о них стоит думать на современных устройствах, выделяющих по 192МБ на приложение, как быстро найти и устранить эти утечки в малознакомом приложении и на что нужно обращать особое внимание при разработке любого приложения.


            Конечная цель этой статьи — ответ на простой вопрос:
            Куда нажать, чтобы узнать, какую строчку в приложении поправить?

            Читать дальше →
          • «Программирование мышкой» в XCode 6 для Swift

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

              По причине недавно возникшей необходимости, пришлось писать под iOS, и я заметил сильную нехватку гайдов на русском языке даже для элементарных действий вроде «прицепить к нажатию кнопки какое-то действие», «считать данные из текстового окошка». Статья для начинающих разработчиков под iOS, прошу таких под кат.
              Читать дальше →
            • 20 самых популярных выступлений всех времен на конференции TED

                Привет, Хабр. Я знаю, что здесь уважают и любят выступления TED. Поэтому я не мог пройти мимо новости о том, что сайт ted.com после редизайна обновил плейлист «20 самых популярных выступлений на TED всех времен». Это яркий пример того, как путем послабления копирайта (все лекции TED находятся в открытом доступе, распространяются по лицензии CC, согласно которой разрешено все, кроме коммерческого использования) и организации краудсорсинга (все переводы выполняют волонтеры) можно добиться впечатляющих результатов…



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

                Рейтинг составлен по количеству просмотров (в статистике учитывались данные с TED.com, Youtube, iTunes, Hulu, встроенных фреймов, количества скачиваний и т.д.)

                Большинство лекций переведены на русский язык, с субтитрами или в озвучке. Не буду много писать, это нужно смотреть. Остальное под катом.
                Читать дальше →
              • Curiosity прошел половину пути к своей цели

                  После того как марсоход преодолел дюну в Dingo Gap он выбрался на новый тип поверхности, напоминающий тот, на который была произведена посадка в августе 2012 года. По нему он устремился к новой своей промежуточной цели — группе холмов под названием Kimberley. Конечная точка этого годового пробега — Entry Point в холмах Murray Buttes еще далеко.


                  На рабочий стол.

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



                  Заблуждение / опасная привычка На самом деле … Наш совет прост:
                  1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

                  Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
                  − от соблюдения набора критериев, установленных законом;
                  − от необходимости документально доказать факт создания программы и свои права на них.

                  Неоформленный SOFT закон не охраняет.

                  Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
                  То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

                  Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
                  Оформляйте много хороших и разных документов при создании программ для ЭВМ:
                  — договоры с авторами;
                  — договоры с подрядчиками;
                  — технические задания;
                  — протоколы совещаний и тестов;
                  — соглашения между соавторами;
                  — авторское свидетельство;
                  — сертификат признания интеллектуальной собственности;
                  — спецификация РИД;
                  — свидетельство о регистрации программы для ЭВМ (Роспатент).
                  Читать дальше →
                • Нейробиология и искусственный интеллект: часть третья – представление данных и память

                    Продолжение.

                    Глава 1: Нейробиология и искусственный интеллект: часть первая — ликбез.
                    Глава 1.5: Нейробиология и искусственный интеллект: часть полуторная – новости от Blue Brain Project.
                    Глава 2: Нейробиология и искусственный интеллект: часть вторая – интеллект и представление информации в мозгу.


                    Рис. 1

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

                    Это дает повод спекулировать об альтернативных теориях сознания, в которых берут какой-нибудь малоизученный эффект и объявляют его панацеей. Одна из таких теорий была выдвинута Р. Пенроузом и С. Хамероффом – квантовая теория сознания, основанная на теоретических предпосылках к квантовому взаимодействию тубулиновых микротрубочек, составляющих цитоскелет нейронов. Если будут желающие, могу обсудить эту теорию в отдельной главе, а пока вернемся к более проверенным теориям.

                    Читать дальше →
                  • Практический опыт работы с Bitmap средствами Android


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

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

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

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

                          И что же них такого деформированного?
                        • Почему я не стану вас нанимать

                          • Translation
                          image

                          Один мой товарищ недавно активно искал работу, и спрашивал меня, как себя подавать перед работодателем. Погуглив, мы пролистали с десяток статей о том, как надо и как не надо делать во время поиска, и одну из них я решил перевести для хабрасообщества, возможно кому-то это поможет избежать ошибок, которые в ней описаны. Манера статьи довольно провокационная, язык местами нецензурен, поэтому я постарался сгладить углы. Итак, поехали..
                          Читать дальше →
                        • Карта мира из старых системных плат (еще один способ пристроить мусор)

                            Британская художница Сьюзан Стокуэлл доделала свою большую карту мира из использованных системных плат и других деталей компьютера для Бедфордширского университета. Работа велась с 2010 года.

                            image

                            Читать дальше →
                          • Карманный роутер Sapido RB-1632



                              Не могу не поделиться восторгом от недавно купленного устройства.

                              Роутер, несмотря на свои размеры, имеет множество функций. Помимо стандартных Ethernet -> Wi-Fi, может выступать wifi-клиентом, имеет USB-хост для подключения модема и смартфонов, может одновременно создавать несколько Wi-Fi сетей с разными настройками и прочее. Питается при помощи USB либо от адаптера.
                              Читать дальше →
                            • Создание приложения для Windows Phone 7 от начала до конца. Часть 6. Поддержка альбомной ориентации, использование элементов управления

                              • Translation
                              Предыдущая часть

                              В этой части вы узнаете:
                              • Как реализовать поддержку портретной и альбомной ориентации.
                              • Какие элементы управления доступны и как выбрать правильный.
                              • Как выбрать между элементами управления Panorama и Pivot.
                              • Как использовать элементы управления для ввода текста.
                              • Как обрабатывать события элементов управления.
                              Читать дальше →