<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/dev_troy/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя dev_troy]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Thu, 30 Apr 2026 06:14:55 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Обработка аннотаций в процессе компиляции]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/e-legion/articles/206208/</guid>
      <link>https://habr.com/ru/companies/e-legion/articles/206208/?utm_campaign=206208&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="http://habrahabr.ru/company/e-Legion/blog/206208/"><img src="https://habrastorage.org/files/525/2b3/35e/5252b335ec97422aba615f934944b0c2.jpg" alt="magic" align="left"/></a><a href="https://ru.wikipedia.org/wiki/Метапрограммирование">Метапрограммирование</a> — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы (в частности, на стадии компиляции их исходного кода), либо программ, которые меняют себя во время выполнения.<br/>
<br/>
Аннотации, как инструмент метапрограммирования появились вместе с релизом Java 5 в далеком 2004 году. Вместе с ними появился инструментарий <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/apt/">Annotation Processing Tool</a>, на смену которому пришла спецификация JSR 269 или <a href="https://www.jcp.org/en/jsr/detail?id=269">Pluggable Annotation Processing API</a>. Что интересно, этой спецификации без малого 10 лет, но свою популярность в Android разработке она начала обретать только сейчас.<br/>
<br/>
О возможностях, которые открывает эта спецификация мы поговорим чуть позже (будет мнооого кода), а сперва, не хотите ли поговорить о компиляции Java кода?<br/>
 <a href="https://habr.com/ru/articles/206208/?utm_campaign=206208&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 04 Oct 2015 17:40:33 GMT</pubDate>
      <dc:creator><![CDATA[dev_troy (e-legion)]]></dc:creator>
      <category><![CDATA[Блог компании e-legion]]></category><category><![CDATA[Java]]></category><category><![CDATA[Разработка мобильных приложений]]></category><category><![CDATA[Android]]></category>
      <category><![CDATA[android]]></category><category><![CDATA[java]]></category><category><![CDATA[magic]]></category><category><![CDATA[zen coding]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Синхронизация в Android приложениях. Часть вторая]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/e-legion/articles/216857/</guid>
      <link>https://habr.com/ru/companies/e-legion/articles/216857/?utm_campaign=216857&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/a97/b50/e4a/a97b50e4a781c9fe98f5ae4ed9f27708.png" alt="account" align="left"/><br/>
Коллеги, добрый день. Продолжим тему, начатую в <a href="http://habrahabr.ru/company/e-Legion/blog/206210/">прошлой статье</a>, где мы рассмотрели механизм создания аккаунта на устройстве. Это было первым необходимым условием для использования SyncAdapter Framework'а. <br/>
<br/>
Вторым условием является наличие <a href="http://developer.android.com/guide/topics/providers/content-providers.html">ContentProvider'а</a>, процесс написания которого разжеван в документации. Признаться честно, мне не очень нравится как там это описано: все кажется громоздким и сложным. Поэтому немного повелосипедим и еще разок пережуем эту тему. Можно было бы обойтись и провайдером-заглушкой, но мы люди серьезные и будем использовать всю мощь этого инструмента.<br/>
<br/>
В комментариях к предыдущей части промелькнула просьба рассмотреть случай, когда нам не нужна авторизация, а только синхронизация. Такой случай и рассмотрим. В качестве примера возьмем и напишем простую rss читалку для чтения нашего любимого хабра и не только. Да вот так банально.<br/>
<br/>
В приложении будет возможность добавлять/удалять ленты, просматривать список новостей и открывать их в браузере. Визуализировать процесс синхронизации и ее запуск будем с помощью добавленного недавно в support-library класса <a href="https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html">SwipeRefreshLayout</a>. Почитать, что это и как использовать, можно <a href="http://habrahabr.ru/post/218365/">тут</a>. <br/>
<br/>
Чтобы настраивать автоматическую синхронизацию через определенные интервалы времени, нам потребуется экран настроек этого добра. Желательно, чтобы доступ к нему был не только из приложения, но и из системного экрана нашего аккаунта (как на скриншоте к статье). Используем для этого <a href="http://developer.android.com/reference/android/preference/PreferenceFragment.html">PreferenceFragment'ы</a>. С функциональностью определились, приступим.<br/>
 <a href="https://habr.com/ru/articles/216857/?utm_campaign=216857&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 22 Apr 2014 08:19:57 GMT</pubDate>
      <dc:creator><![CDATA[dev_troy (e-legion)]]></dc:creator>
      <category><![CDATA[Блог компании e-legion]]></category><category><![CDATA[Разработка мобильных приложений]]></category><category><![CDATA[Android]]></category>
      <category><![CDATA[android]]></category><category><![CDATA[android development]]></category><category><![CDATA[tutorial]]></category><category><![CDATA[синхронизация]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Синхронизация в Android приложениях. Часть первая]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/e-legion/articles/206210/</guid>
      <link>https://habr.com/ru/companies/e-legion/articles/206210/?utm_campaign=206210&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/658/bc2/339/658bc233994d253f42e3767aac2db2b5.png" alt="image" align="left"/><br/>
На дворе 2014 год, <a href="http://developer.android.com/about/dashboards/index.html">доля Android JellyBean перевалила за 60%</a>, появились новые тренды в дизайне. В общем, случилось много всего интересного. Но синхронизация данных с сервером осталось неотъемлемой частью большинства приложений. Существует много способов реализации ее в приложении. Android предоставляет нам SyncAdapter Framework, который позволяет автоматизировать и координировать этот процесс и предоставляет множество плюшек в довесок. <br/>
<br/>
<h4>Account</h4><br/>
Для начала нам потребуется собственный аккаунт на устройстве. Сначала, я думаю, стоит ответить на вопрос, зачем? Действительно, зачем?<br/>
 <br/>
Краткое резюме преимуществ:<br/>
<ul>
<li>Поддержка фоновых механизмов вроде SyncAdapter</li>
<li>Стандартизация способа авторизации</li>
<li>Поддержка различных токенов (прав доступа)</li>
<li>Шаринг аккаунта с разграничением привилегий (возможность использовать один аккаунт для различных приложений, как это делает Google)</li>
</ul><br/>
Шаги для получения плюшек:<br/>
1) Создание Authenticator'а<br/>
2) Создание Activity для логина<br/>
3) Создание сервиса для общения с нашим аккаунтом<br/>
<br/>
 <a href="https://habr.com/ru/articles/206210/?utm_campaign=206210&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 21 Mar 2014 09:42:10 GMT</pubDate>
      <dc:creator><![CDATA[dev_troy (e-legion)]]></dc:creator>
      <category><![CDATA[Блог компании e-legion]]></category><category><![CDATA[Разработка мобильных приложений]]></category><category><![CDATA[Android]]></category>
      <category><![CDATA[android development]]></category><category><![CDATA[tutorial]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Эффективное клиент-серверное взаимодействие в Android]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/175455/</guid>
      <link>https://habr.com/ru/articles/175455/?utm_campaign=175455&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<h4>StrictMode и борьба с ANR</h4><br/>
Начиная с версии Gingerbread, Google добавил в Android механизм, который позволяет отслеживать долгосрочные операции, выполняемые в UI потоке. Имя этому механизму StrictMode. Для чего же это было сделано? <br/>
<br/>
Каждый из вас, вероятно, сталкивался в приложениях с диалоговым окном «Application Not Responding» (приложение не отвечает) или ANR. Это происходит когда приложение не отвечает на события ввода (нажатие клавиш, тач по экрану) в течение 5 секунд. Для отслеживания процессов, блокирующих UI поток, и был введен механизм StrictMode. И, начиная с Android 3.0, StrictMode пресекает попытки выполнить сетевой запрос в UI потоке. <br/>
<br/>
Итак, какие же механизмы предоставляет Android для обращения к сети вне UI потока?<br/>
 <a href="https://habr.com/ru/articles/175455/?utm_campaign=175455&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 04 Apr 2013 12:15:01 GMT</pubDate>
      <dc:creator><![CDATA[dev_troy]]></dc:creator>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[android]]></category><category><![CDATA[network]]></category><category><![CDATA[программирование]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
