Внешние ресурсы в Android приложениях

  • Tutorial
Продолжаем публиковать e-Lectures — небольшие видеолекции от наших мобильных разработчиков.



Ссылки на исходники из видео:
github.com/stepango/metroTheme
github.com/stepango/DownloadableThemes

В этом видео Степан stepango Гончаров расскажет об одном из возможных способов добавления поддержки внешних тем в Android приложения.
На платформе Android сложно угодить дизайном всем пользователям, а множество предустановленных тем сильно раздувает приложение. Как достойно выйти из этой ситуации, предоставив возможность сторонним разработчикам очень легко создавать свои уникальные стили для приложения? Один из возможный вариантов в нашем видео.
Подписывайтесь на наш Хабра-блог (и на youtube-канал), чтобы не пропустить следующие видеолекции о мобильной разработке.
e-Legion
104.63
Лидер мобильной разработки в России
Share post

Comments 12

    0
    А ссылки можно сюда добавить?
    0
    А насколько практично? Как заставить пользователя скачать еще одну (или несколько) дополнительную программу?
      +1
      Отправить в маркет, никаких дополнительных разрешений темам не нужно, так что это абсолютно безопасно для пользователей. Темы для AWD Launcher, например, распространяются таким способом.
        0
        Прием тот же самый, но наши с вами реализации довольно сильно отличаются.
        +1
        Нуууу, я бы поспорил в некоторых местах.

        Самое значимое про использование id и имен.
        ID так-же можно легко использовать.
        Только надо заранее иметь полный список всех необходимых айди, сделать их константыми (тут происходит особая уличная магия) и эквивалентными в обоих приложениях и тогда можно смело использовать вообще все ресурсы любого типа без каких-либо серъезных ограничений.
        Этот прием использует прямо в ядре андроида: все айди из android.R.id константы на всех платформах, не так-ли? Гляньте andoird-sdk/platforms/platform-*/data/res/values/public.xml:
        <public type="drawable" name="btn_default" id="0x01080004" />
        Если сделать так для всех ресурсов — все будет в шоколаде.

        А если особо постараться — можно даже использовать ссылки на ресурсы из другого апк прямо в разметках, но тут уже разбирайтесь сами, я злой.
          0
          Спасибо, попробую.
          0
          Пожалуй одно единственное «но» по поводу хранения компоновки в стороннем приложении — она должна состоять исключительно из компонентов Android-фреймворка, которые разделяются между всеми приложениями. Если в компоновке определен кастомный виджет, кода которого нет в «клиентском» приложении, то компоновку просто не получиться надуть из xml.

          Only users with full accounts can post comments. Log in, please.