Android Niceties


Never miss updates: Start reading the news feed of Android Niceties Tumblr right away! Warning: This site may contain some obscene material or profanity, so we cannot display its news.

Hello Folks! Today I thought I should come up with a new kind of post. Android Launchers. Yeah! you’re right. People on internet talk about various android apps and games but we all forget Android Launchers. I am sure the launchers listed below.

With Android 4.0+, Google introduced the Holo scheme of design principles that promoted clean and digitally authentic design. Many third-party apps have since adopted these design themes, but the phenomenon isn’t exclusive to just social networking.

Yahoo! have been busy building Android apps some of which are among the most beautiful apps on the platform. When the first of the new generation apps, Yahoo Weather, launched there was controversy about some of the UX decisions made in the otherwise.

The saying goes, fool me once shame on you, fool me twice shame on me. Apparently ES File Explorer has never heard that saying, or they chose to ignore it. After updates late last year brought harsh criticism for their inclusion of invasive and annoying.

While smartphones are now capable of doing much more than many of us ever thought possible, such as graphic-intensive gaming, taking impressive photos, or data speeds faster than most home Internet connections. We all know that the majority of our use.

Andro > J. O’Dell September 17, 2012 11:55 AM

A new blog has popped onto our radar: Android Niceties, a word-free collection of the best, most beautiful Android design.

Long held by the general public to be the underdog in the mobile design wars, the Android mobile platform takes a PR beating in the design and development community as well. The Niceties blog stands as proof that regardless of rhetoric to the contrary, gorgeous, design-competitive Android apps do exist, and they’re as breathtaking, sophisticated, and elegant as their Windows Phone and iOS cousins.

The blog’s mission is to act as a visual scrapbook that “provides inspiration and insight into Android UI conventions.” Android Niceties got its start last fall and currently features stunning examples of Android apps from companies large and small, known and less known.

The launch of Android 4.0, also known as Ice Cream Sandwich, last year brought some technological unification to the Android platform, and it also got a ground-up overhaul in the design department.

In a deep-dive interview with Android design chief Matias Duarte, VentureBeat learned more on how Google transformed Android from “the ugly cousin” into a mobile beauty pageant contender. The Android design team even build a housemade typeface, Roboto to go along with the new design language.

“The way things look and make people feel are just as important as the speed and features,” said Duarte last fall.

And that didn’t just apply to the OS; Android applications stepped up their game as well. In another long chat with Googlers Chris Yerga and Billy Rutledge, we talked about how the design upgrade, which persisted with Android 4.1, aka Jelly Bean, had inspired app developers to bring sexier, more expensive-looking, sharply designed apps to Google Play. “That’s all developers. The games and apps have gotten so much better,” said Yerga.

Here are a few favorites from Android Niceties, along with Google Play download links:

Andro > Simon Bareyt — mardi 20 août 2013 — 15:30

Aujourd’hui, certaines applications mobiles sont de véritables oeuvres d’art en termes de design. Mais pas toujours facile de mettre la main sur les plus jolies. Si vous êtes utilisateur d’Android, on a trouvé un blog sur Tumblr qui pourrait vous intéresser. Une collection des plus belles applis, ou UI dans le jargon technique !

Trouver les plus belles créations en un clin d’oeil

Certains designers mettent le paquet pour concevoir leurs applications, niveau esthétisme et ergonomie, rien à dire ! Android Niceties est un blog réunissant les plus belles créations. Il vous suffit de défiler de haut en bas et de gauche à droite pour visualiser les captures d’écran de chaque appli et trouver celles qui vous plaisent le plus, en un clin d’oeil !

Aucun texte n’accompagne les images, juste un lien pour télécharger l’appli. Tout est dans le visuel, et c’est aussi ce qu’on recherche en venant sur Android Niceties. Vous pouvez même choisir la taille des images (S, M, L ou XL) ! Idéal pour rentrer dans les moindres détails.

Utilisateurs d’iPhone, vous y trouverez aussi votre intérêt. Sur les nombreuses appli présentées sur le blog, certaines doivent avoir leur équivalent sur iOS. Ça mérite le coup d’oeil !

Buzzing Android

Android niceties for developers

Count words in Andro > 2 Replies

I put together a simple Python script that counts the words in one or more Android string resource XML file, and thought other people might find use for it as well.

The script is written for Python 2.7, but may work in other versions.

You run the script from the commandline and pass as arguments the string resource file(s) you want to count words in, for example

And here is the source code for the script:

PDF reader from URL hybr > 17 Replies

As many StackOverflow questions and answers hint at, there is no built-in support for reading PDF files on Android, which is kind of a shame, especially since iOS has native support for the format. The vision must have been that user’s will select their own favorite PDF reader app, and then read all other apps’ PDF files through that reader app.

However, as an app developer, you cannot make assumptions on which PDF reader apps exist on a user’s device – you cannot even assume that one is installed! Several StackOverflow posts suggest redirecting the user to Google Drive’s (formerly Google Docs) online HTML PDF viewer. This solution is kind of bulky though, and doesn’t work as well as using a native app (Like Adobe Reader or other PDF reader apps).

This inspired me to come up with a hybrid solution for reading that checks if a PDF reader app is installed and does the follwing:

  • If a reader is installed, download the PDF file to the device and start a PDF reader app
  • If no reader is installed, ask the user if he wants to view the PDF file online through Google Drive

NOTE! This solution uses the Android DownloadManager class, which was introduced in API9 (Android 2.3 or Gingerbread). This means that it doesn’t work on Android 2.2 or earlier.

The main method for the code is PDFTools.showPDFUrl( Context context, String pdfUrl );

The code can be found on GitHub or just right here:

SQLite INSERT OR REPLACE through ContentProv > 13 Replies


A lot of times in an app, you need to update some locally cached data stored in a database with newer data fetched from e.g. a webservice. A normal way (or so it was for me) to do this is with the “if-not-update-then-insert” pattern, like this:

Or with many rows, using bulkInsert() :

While this might seem like a solid way to do it, there are a few problems:

First of all, some of the code is boilerplate and could be reduced a bit, but the major issue here is…

Thread safety

If multiple threads are running this code simultaneously, it is possible to violate your database constraints:

For example if you have a unique key in your table that the update() tries to match with, and two threads executing the code, the following could happen:

Both threads have run all the update() calls without updating anything and are about to run the insert() / bulkInsert() method. This means that both threads think that it is safe to insert the values, because they have already checked that no constraints are violated when no updates took place. The threads are, however, not aware of eachother’s plans to insert data with the same unique key, which undoubtedly will result in a constraint violation, and possibly an exception like the following:

Why not just synchronize it?

An easy solution for this thread safety problem is simply to wrap the code in a synchronized block, like this:

This works, and no constraint violations occur anymore. But now we added more code and slowed down the execution of the code by locking it to one thread at a time.

Better solution: Using SQLite’s INSERT OR REPLACE statement

The better solution to this is to use one of SQLite’s already builtin features, the INSERT OR REPLACE statement. However, the ContentProvider only has a insert() method and not a replace method, so we’ll have to work around this in some clever way:

Fortunately, the ContentValues objects can hold an arbitrary amount of parameters to the ContentProvider , so we’ll use that to indicate that we want to do an INSERT OR REPLACE instead of just a normal INSERT .

First we’ll define some static string constant that we would never use as column name:

Next, we’ll pass that along with the other values in our ContentValues object:

Now we have passed the parameter on, so we’ll modify our ContentProvider to handle this:


There you have it. We can now call SQLite’s INSERT OR REPLACE function through our ContentProvider ,
and even takes even less code, since we only have to call insert() , and not update() . Neat huh?

Push message differences between Andro > 15 Replies


Having recently written a library to unify the sending of push messages for Android devices with GCM (Google Cloud Messaging for Android) and iOS devices with APNs (Apple Push Notification Service), I have gained a valuable insight on the technical differences between how push messaging works identical and differently between the two platforms.

Цукерберг рекомендует:  Оригинальный timepicker для Bootstrap (или jQuery)

In my opinion, there are more differences than similarities between them, so let’s start with what is the same for Android and iOS push messages:

Similarities between Android and iOS push messages

Both Android and iOS requires the device to contact their respective push message provider (GCM or APNs) to receive a special string (which I will call the identifier), that uniquely identifies a specific app on a specific device. In GCM this is called the device ID, while APNs calls it a device token. It is the app’s responsibilty to receive this identifier from the provider and send it to your application server, so your app can receive push messages from your application server.

Both platforms allow for sending messages from one application server to multiple devices, and for multiple application servers to send to the same device.

Lastly, both platforms allow for an arbitrary JSON object to be sent from your application server to the device, though the maximum allowed size of this object differs (more on that later).

Differences between Android and iOS push messages

The format of the identifier is different: APNs’ device token is always a 64-byte hex-string, while I’m not so sure about GCM’s device ID (As an example, I got a 183-byte string which seemed to follow the regex pattern [a-zA-Z0-9_\-] (letters, numbers, underscores and dashes).

Push messages sent to GCM always returns a reply to the application server informing whether or not the delivery of the message to GCM was successful, and this reply can tell the application server if a device ID has changed or if it has become invalid and can no longer receive push messages. With APNs, you have to periodically connect to a APNs feedback server, that will tell you if any device tokens used previously have become invalid.

Note that none of the providers can or will tell you if the message actually got delivered to the device, they merely tell you whether or not the message was accepted for delivery. The primary reason for this is that a device may be unavailable (e.g. turned off, no network coverage) and the provider then stores the message for later delivery up to a maximum timeperiod (APNs does not inform of this timeperiod, while for GCM it is 4 weeks – in fact you can choose a time-to-live for GCM messages anywhere for 0 seconds to 4 weeks).

And now that we are on the subject of delivery, GCM has quite an advantage over APNs: APNs only stores one unsent message – the most recent: If you send another message to a device that already has a queued message on APNs, the queued message is discarded in favor of the newer. GCM supports this behaviour through the use of collapse keys, but it is not the default behaviour. GCM’s default is attempting to deliver every accepted message.

Differences in the contents of the push messages

The raw contents and interpretations of the push messages are probably the biggest differences between the GCM and APNs:

Where GCM simply passes raw JSON data to a background service from your app, free for the app to process whether it is in the foreground, background or not even started. You can choose to ignore the message, post a notification in the notification bar, trigger a synchronization action, display a dialog (though frowned upon if your app isn’t in the foreground) or something entirely different. It is totally up to you.

APNs makes up for iOS’ limited support for background services in the following way: You can specify an alert dialog (possibly localized with format arguments) to pop up to tell the user that something has happened in your app. Furthermore you can play an optional sound from your app and put a badge on your app’s icon (The number in the red circle in the top right corner of the icon). This is all done by iOS. You don’t have to do any programming on the app side for this. This is default behaviour if the app isn’t in the foreground. If it is in the foreground, you receive the parameters for the alert, badge and sound in your code along with an arbitrary JSON payload, where you can do whatever you want with it.

Notice, however, that there is limitations on the size of the payload in the messages. For GCM the payload is limited to 4 KB (4096 bytes), while APNs only allows 256 bytes(!) for payload. Also, with APNs, the alert, badge and sound parameters are part of these 256 bytes, so there isn’t much space for additional data: An alert with format parameters can easily take up 75-100 bytes, so you have to be conservative with the data that you pass along. It is better to notify your app that something has changed than to send along the change in the push message (which is practically impossible for real life data)


These are, in my opinion, the most important differences and similarities between Google Cloud Messaging for Android and Apple Push Notification Service.

Though I am heavily biased in favor of the Android platform, this is not a bashing of Apple’s push service. It is intended to give an overview of the differences, so you get a better understanding of how to implement your cross-platform push message solution

Andro > 15 Replies

Hi guys, hope you had a great new years!

If you’ve ever developed an Android app, you’ve probably used the findViewById() method for finding views and findFragmentById() for finding fragments from your inflated layout. This has to be done with every View and Fragment that you want to access from your code.

After getting tired of writing the same code over and over again, I created a tool to generate that code for me from an arbitrary XML layout:

You can try it out on a sample XML layout by pressing the ‘Paste example XML’ button in the right side of the screen.


NICETIES — where learning lives.

NICETIES Daily ideas and motivational quotes App is an amazing inspiring App that shows you a new Motivational Quote and ideas on a daily basis. You can read, add Favorites, Share, comment and get daily notifications any of the thousands of inspirational Quotes, proverbs and wise sayings, amazing truths, Wikipedia and successful living tips, young leadership tips and kids care tips available here. Plus, you can participate in our unique daily poling and Check the stats live. And all this is FREE.

Our purpose is to motivate and inspire you to be the very best. Through the NICETIES App, we are able to share some of the world’s best motivational quotes, tips and daily ideas with our users. This app will helps you to get motivated and uplifted in day to day life.

Andro > Andreas Floemer am 21.08.2013, 14:04 Uhr 3

iOS-Nutzer sagen Googles Plattform Android gelegentlich nach, dass das Design der Apps um Ecken schlechter sei als auf Apples mobiler Plattform. Dies mag vielleicht vor Android 4.0 der Fall gewesen sein, doch mittlerweile sieht das Ganze anders aus – vor allem seitdem Google Entwicklern eine Reihe an Design-Empfehlungen an die Hand gegeben hat, an denen sie sich orientieren können. Wie schön Android-Apps sein können, zeigt das Tumblelog Android Niceties.

Google-Mitarbeiter und Android-Interaction-Designer Abhilash Kuduvalli hat auf seinem Tumblr „Android Niceties“ eine umfangreiche Sammlung an großartigen Android-Apps zusammengestellt, die man teilweise nur wegen ihres Designs installieren möchte. Seine Mission mit dieser Seite, die es bereits seit einiger Zeit gibt, ist es, andere Entwickler zu inspirieren und ihnen Einblicke in Android-UI-Konventionen zu gewähren.

Timely darf in der Auswahl der schicksten Android-Apps nicht fehlen

Seiner Ansicht nach gehören zu diesen Android-Design-Juwelen Apps wie Timely, jene Uhren-App, die wir euch erst jüngst vorgestellt haben. Aber auch Hue Weather, die Anwendung im für Android ungewöhnlichen, aber zurzeit angesagten Flat-Design, die wir euch im Zuge unserer umfangreichen Übersicht an Wetter-Apps auch bereits ans Herz gelegt haben. Ferner sind in seiner mittlerweile beträchtlichen Liste auch einige Apps aus Googles Repertoire: Google Keep, Google Music, Google Now und Play Books seien hier beispielhaft erwähnt.

Auch Google+ ist Bestandteil der Sammlung

Bei manchen Apps fragt man sich allerdings doch, was sie in der Liste zu suchen haben. Vor allem WhatsApp, die zwar seit einigen Monaten im Pseudo-Holo-Design erstrahlt, aber trotzdem alles andere als ein Design-Meisterstück ist, hat meiner Meinung nach nichts darin zu suchen.

Falls ihr auf der Suche nach neuen und auch sehr schicken Android-Apps seid, schaut einfach auf Android-Niceties vorbei – dort werdet ihr mit Sicherheit fündig. Habt ihr Apps, die euer Meinung nach in die Liste gehören?

On Navigation In Android-MVP

A lthough MVP approach for Andro >navigation mechanism. On the one hand, there are proven concepts about navigation, but on the other hand, there is harsh reality in the face of Android platform with all it’s niceties + non-trivial task of app’s architecture flexibility maintenance. So here is an attempt to sort things out.

UPD: this article contains of some sort of theoretical and practical parts. And the practical one is based on my previous story On Communication Between V and P in Android-MVP(link to story).

And as far as I can see stats(and there is no surprise, I’d better done it earlier), there are readers who are more interested in exploring code itself and may be reading articles after that to better grasp things, so here is the project containting the whole code of all the stories and even more (link to project). You are welcome to investigate it.

Talks About Navigation In Andro >Opinion exists that navigation is the responsibility of presenters. And as far as navigation commonly has Andro >NavigationCommand. So the it looks like this:

Usage of this NavigationCommand is rather straightforward:

Everything seems valid, perfectly decoupled and smooth.

…So What’s The Deal?

When working with such an abstract example, there seems to be no problems. The code definitely works. But while abstracting away navigation in NavigationCommand it good thing to do, using it in presenters leads to some questions.

At first, let’s recall what are the responsibilities of presenter? Here it is: handle signals from user + transform data from model into view model + update the view. Then, what are the responsibilities of view? To be passive, delegate user input to presenter and to handle visual behavior.. Hmm.. To handle visual behavior. And the thing is navigation is something visual, isn’t it? I totally can see transitions from one screen to another, for example.

At this point the doubt appears. What if view is responsible for doing the navigation stuff.

Цукерберг рекомендует:  Javascript - Помощник с отличным знанием drupal (commerce) и JS

Another Truth

The reasons for doubts don’t stop here. But before moving further, let’s think about what is the navigation actually?

It is valid to consider these cases as navigation:

#1. starting activity

#2. if you are the-more-struggle-the-better kind of guy, working with fragments

#3. even #1 and #2 aren’t enough for you, then showing dialogs (using DialogFragment, of course). Yes, why not? It is a valid (not that acceptable in many scenarios though) navigation case. And basically it is #2 under the hood.

#1 is operated on app context so it can be done without any limitations using aforementioned NavigationCommand objects. But navigation using #2 or #3 changes state of the current view(it could be acitivity or fragment), this type of navigation is bound to the lifecycle. What I mean is the fact that even if you wrap this logic in NavigationCommand, invoking this command after onSaveInstanceState() will make your app crash. The recipe of such a crash is simple: navigation as a result of some async operation in presenter + user [minimizing app]/[switching to another app]/[rotating device] while operation is in progress.

So, here is the picture for now:

  • navigation is all about changing UI
  • all navigation should be lifecycle-aware ( NavigationCommands should be executed between onResume() and onPause() of view). That’s necessary, as far as you want your app to continue working after changes like “moving to activity” → “adding a fragment”(2) for NavigationCommand or “sync navigation invocation” → “navigation invocation after network request”(3);
  • presenter by its’ nature should be unaware of such niceties of an Andro >Things getting complicated…

OK Everything Is Bad, Give Me The REAL Solution

In the approach that I want to introduce it is view’s responsibility to handle navigation. For me it seems natural and here is why. Two types of navigation can be distinguished: one is like changing text in TextView in current view= moving view to another state = state-based navigation, and another type — is like opening dialogs = moving from current view to some another view = view-based navigation. So as there are no questions for the chain

there should be no questions for the chain

Both updateTextView() and showInfoDialog() change the UI = change the state of UI = navigate to another state of UI, so treating all of these events as navigation is logically valid thing. More than that, when treating everything in a single manner, communication between view and presenter becomes consistent as it should be, thus easy to write and understand.

But there is another tricky question to answer. And it is related to the fact that presenters are not supposed to be aware of view lifecycle, but the navigation should be lifecycle-aware. The only useful information presenters have is whether the view is attached (and it is true between onResume() and onPause()). So the next solution would work:

But while this approach is safe in terms of app crashes, the cost of such an achievment is too high: ViewState loss. If result comes after onPause(), user will not see the dialog afterwards.

Therefore, before moving to the solution some improvement to the basic Android-MVP approach should be made. It touches neither presenter, nor view in [view] → [presenter] →[view] chain, but “→” themselves. This improvement is connected to introducing a transparent layer between view and presenter that is responsible for the following:

  • Managing view lifecycle, so presenter can talk to view at any desired moment without null-checks;
  • Tracking ViewState, so no matter what is done to the view (rotation, other config changes, low-memory), it’s state stays up-to-date and can be restored;

So the >transparent layer (it acts like some sort of Sticky-Communication-Bus between view and presenter). I described implementation details in the post about communication between V and P. And the code for the story is here, you might explore it as well.

The most important about introducing CommunicationBus layer for us now is how communication is handled in direction from presenter to view:

  • CommunicationBus acts transparently, so presenter thinks it sends events to the view, but actually it sends events to the CommunicationBus (example of code). CommunictionBus tracks ViewStateand dispatches events to the view if it is available.
  • View thinks it talks to presenter, but actually it talks to CommunicationBus, that dispatches events to presenter and restores actual state of the viewusing ViewState when view binds itself to presenter by calling attachView(View view) (example of code) .
  • The ViewState concept is introduced. ViewState is a model of actual state of the view.
  • CommunicationBus is a POJO and tracks ViewState all the time, it even survives configuration changes, backs ViewState up on low-memory, so that view can be restored in its’ actual state after rotation/being vanished away on low-memory etc.

It means, that if user initiated, for example, loading, thus making view show loading indicator, then rotated the device during operation, the view after being recreated will continue to show loading indicator and then will show data loaded by the same operation. That’s good because of better UX and more optimized resources usage (results from the same operation are delivered)(4).

But, while the approach plays well in cases like one above with loading indicator, it fails to handle navigation. Why? Lets look at how CommunicationBus generally handles communication from presenter to view:

And restore process (when view thinks it attaches to presenter, but in fact to communication bus):

And the thing is operations like showing loading indicator, or updating view with content. They all are changing current ViewState. And opening an acitivity or showing a dialog is a moving to a new ViewState, it doesn’t affect the current ViewState.

So for navigation the next scheme should be used:

It looks like the previous one, but here we are not saving operation if it can be performed at the moment, because it is not something that we want to restore after rotation. If view-based navigation can be done at the moment, just do and forget about it. And if can’t be done, then save it as pending operation. All the pending operations are stored as a separate >ViewState will look like this:

And the restore process will change accordingly:

OK, so ViewState, along with tracking state of the view itself, is now able to track possible pending navigations and restore all of it. I used a list for storage, because it’s unlikely but still possible to have several pending navigations.

Doing so navigation will be handled correctly even if it is invoked after async processing while view is being recreated and even if navigation operation has some data as parameter (view-based operations can be persisted along with their parameters). CommunicationBus will manage all the logic related to keeping ViewState up-to-date and restoring it and all of its’ pending navigations. Nice!

Wrap up

That is how the skeleton for reliable navigation in Android-MVP can look like. In this approach the view is responsible for all of the navigation, both view-based and state-based. And have no problems using this approach. It actually could be done at the CommunicationBus level, but I can’t see any benefits of doing so. But there is no way for handling navigation in presenter itself, it is unacceptable, because of view-based navigation constraints in terms of lifecycle.

You can find the actual code for this approach along with other modifications and improvements here in repository.

It is WIP, but for now I just want to share the idea behind navigation in Adnroid-MVP and steps for making it reliable.

Hope you’ve found this story helpful. Thank you:)

(1) it doesn’t mean dialogs are totally evil. There are cases when they are appropriate

(2) consider master-detail example: navigation to another activity on phones and replacing a detail-fragment on tablet.

(3) example: login fragment. User taps on “login” button, chain of network requests launches and if it appears that such a mail is already exisits, dialog should be shown + if everything is fine, then replace login fragment with welcome fragment.Here if user minimizes app while network requests are processing, there is a crash when processing is done and it’s time for either of navigations.

(4) The operation scheme of CommunicationBus for the example is the next:

save SHOW_LOADING state of the view, when presenter says “showLoading()” and then propogating the signal to view. Then, if device is rotated, the new intance of view is going to be created and attached to the same CommunicationBus, which has it’s actual state, so it can be restored in onResume() of the new view. If, while view was recreating, the result was deveivered to presenter, it will invoke “showContent()” on CommunicationBus, and CommunicationBus will update view state, but will not propogate that signal to view (it is in recreation process, thus null), but then will restore actual SHOW_CONTENT state on the new recreated view when it attaches.

Топ-10 библиотек мобильных UX/UI шаблонов для вашего бизнеса

Успех и популярность приложения зависят от множества факторов.

Если ориентироваться на обязательный минимум, то мобильное приложение должно сочетать в себе практичность, эстетику и удобство. Уберите хотя бы одну составляющую — и приложение потеряет всякую ценность для пользователя

Обеспечивать и сохранять баланс между тремя базовыми элементами призван функциональный UX/UI дизайн.

  • UX (User Experience Design) , как следует из названия, ориентирован на пользовательский опыт и включает в себя различные компоненты: от информационной архитектуры и проектирования взаимодействия пользователя и программы до графического оформления и организации контента.

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

  • UI (User Interface Design) — более узкое понятие, включающее в себя определенный набор графически оформленных технических элементов (иконки, кнопки, меню, индикаторы загрузки и прочее) и общую организацию элементов интерфейса и его единообразие.

Ключевая задача UI дизайна состоит в организации комфортного и интуитивного взаимодействия пользователя с приложением или сайтом.


Дизайн мобильного приложения — это тот фактор, важность которого при создании бизнес-стратегии часто недооценивается. Однако известная пословица «встречают по одежке, а провожают по уму» идеально подходит и для мобильных приложений . Каким бы полезным ни было ваше приложение, первое впечатление пользователя основывается прежде всего на удобстве дизайна. Неудобный и перегруженный интерфейс мгновенно формирует негативное впечатление о вашем приложении и, соответственно, о вашей компании в целом. Максимально удобный, функциональный и легкий в восприятии интерфейс с лаконичным дизайном, напротив, создает благоприятное впечатление, выполняя ряд полезных для бизнеса функций:

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

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


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

Подобные распространенные дизайнерские решения получили название “шаблоны проектирования” или “паттерны дизайна”.

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

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

В настоящее время библиотеки шаблонов мобильного UX/UI дизайна — популярный феномен, получивший широкое распространение в среде дизайнеров и мобильных/веб-разработчиков.

Компания мобильной и веб-разработки Амбрелла выбрала 10 лучших библиотек шаблонов, которые могут оказаться хорошим подспорьем для проектирования профессионального UX/UI дизайна мобильных приложения для вашего бизнеса:

  • AndroidUX — библиотека UX/UI шаблонов, созданная в 2012 году и активная до сих пор. Содержит тысячи различных шаблонов для мобильных устройств на базе Andro >Uber до Snapchat .
  • Mobile Patterns — обширная библиотека мобильных UX/UI шаблонов для iPhone и Android. Более 20 категорий ключевых элементов интерфейса.
  • UI Parade — онлайн каталог, созданный для вдохновения UI дизайнеров. Представленные паттерны разработаны международным сообществом профессиональных дизайнеров. Есть возможность регистрации, чтобы всегда быть в курсе последних тенденций UX/UI дизайна. Помимо шаблонов, на сайте можно найти ссылки на полезные для разработки интерфейса инструменты и ресурсы.
  • Android patterns — библиотека интерактивных паттернов для разработки мобильных приложений на базе Android. Все дизайнерские решения, доказавшие свою эффективность большое количество раз собраны здесь. Есть опция добавления в открытый доступ собственных шаблонов. “Используйте их как ориентир, а не непреложное правило” предупреждают создатели сайта.
  • — это коллекция мобильных UI элементов для iPhone, iPad и Android. Удобный поиск по тегам, мобильному устройству и актуальным трендам.
  • pttrns — сайт позиционирует себя как “мать всего дизайна” и, собственно, может себе это позволить: проект был запущен в 2012 году и с тех пор стабильно обновляется. Доступна опция приобретения премиального аккаунта, обещающего неограниченный доступ к контенту (более 7000 паттернов) и полное отсутствие рекламы. Это единственная библиотека из нашего списка, шаблоны которой актуальны не только Android и iOs, но и конкретно для Apple Watch.
  • UX Archive это библиотека шаблонов для мобильного UX-дизайна. Миссия сайта в том, чтобы сопоставлять наиболее эффективные варианты дизайна и отсекать наименее продуктивные, помогать создавать креативные и функциональные приложения с максимально комфортным для пользователя опытом взаимодействия и вдохновлять. В библиотеке представлены анимированные элементы, а сами шаблоны удобно рассортированы по задачам и конкретным приложениям.
  • iOSpirations — несмотря на то, что блог не обновляется с 2014 года, пользовательское коммьюнити библиотеки стабильно добавляет новый контент. На сайте есть возможность оценивать и комментировать понравившиеся шаблоны для iOs, и сортировать поиск элементов по рейтингу. В качестве бонуса, можно подписаться на почтовую рассылку и самым первым получать все последние обновления.
  • UICloud — вероятно, самая крупная база элементов UI дизайна в мире, насчитывающая более 46600 тысяч UI фрагментов и более 1000 наборов пользовательского интерфейса (UI kits). Удобный поиск, понятная категоризация, возможность сортировки результатов поиска по выполняемой задаче или рейтингу. Обновления можно отслеживать через FaceBook, twitter или Google+.
  • Little Big Details — философия сайта описывается цитатой Чарльза и Рея Имза: “Детали — это не просто детали. Детали — это то, что делает продукт”. На сайте собрана коллекция элементов UI дизайна в формате блога с фокусом на тонкие детали и финальные штрихи. Шаблоны актуальны не только для мобильных устройств, но и для веб-сайтов.

И традиционный бонус от компании Umbrella — ведь мы знаем, что качественного контента много не бывает — 11 ресурс для создания мобильного дизайна:

  • Android niceties — это веб сайт, созданный для чистого вдохновения при разработке UI дизайна приложений на Android. На сайте собраны скриншоты реально существующих приложений с самым удачным сочетанием функциональности и эстетики.


Существует мнение, что активное использование шаблонов UX/UI дизайна в мобильной разработке ведет к массовому обезличиванию приложений и штамповке однообразных цифровых продуктов

Однако это изначально неверный подход: шаблоны — это не свод жестких правил, но лишь отправная точка, набор рекомендаций и чистое вдохновение.

У компании Umbrella есть 3 больших плюса, почему UX/UI шаблоны дизайна — информационный и прикладной ресурс, от которого нерационально отказываться:

  • Оперативное создание UX прототипа

В некоторых случаях дерзким нововведениям следует предпочесть проверенную классику. Зачем изобретать велосипед заново? Ведь гораздо быстрее и эффективнее начать создание прототипа дизайна, опираясь на проверенные временем дизайнерские решения, представленные в библиотеках шаблонов, чем разрабатывать дизайн с нуля. Даже самые популярные приложения — от Facebook ( 81% пользователей мобильных приложений) до Youtube ( 71% пользователей мобильных приложений) используют в своем интерфейсе стандартные иконки и элементы меню из библиотек шаблонов.

  • Быстрая разработка и многократное применение

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

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

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

Как показывает наш опыт, создание эффектного и эффективного приложения требует сочетания проверенных практик с собственными новаторскими идеями. При разработке приложений, Umbrella использует UX/UI шаблоны дизайна, чтобы построить общий каркас интерфейса, с помощью которого решаются основные проблемы приложения. А затем этот каркас обязательно модифицируется и кастомизируется под нужды конкретного продукта и до полного соответствия бизнес-стратегии.

Android Niceties

Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.

Если вы выложили новую версию игры или её кэш, пожалуйста, сообщите об этом модератору, нажав на вашем сообщении кнопку «Жалоба».

С запросами на обновление уже существующих на форуме игр обращайтесь в тему Обновите игру!

Последнее обновление игры в шапке: 15.08.2020

Краткое описание:
Порт с PC от китайцев.

ICEY is a 2D side-scrolling action game. As you follow the narrator’s omnipresent voice, you will see through ICEY’s eyes and learn the truth about her world.

“Alright, you caught me! This ISN’T really just a simple 2D action game, and you WON’T be seeing through ICEY’s eyes. NOR will you learn the truth about her world.» says the narrator.

“ICEY is a Meta game in disguise. The narrator will constantly urge you in one direction, but you must ask, «Why? Why am I following his directions? Why can’t I learn the truth about this world and ICEY’s purpose here?» Fight against his tyranny, and uncover what’s really going on for yourself!

In fact, you can become ICEY, and let loose the shackles of your own identity. You are ICEY, and ICEY is you. if you want it that way. Feel free to keep hold of your own self, if you wish.

Now Is the Time For You to Discover the Truth.

You See? ICEY, I See!

Использование модификаций игры пользователи осуществляют на свой страх и риск. Жалобы, связанные с работоспособностью игры после применения модификаций, рассматриваться не будут

С запросами на обновление игры обращайтесь в тему Обновите игру!

Перед установкой просьба ознакомиться с темой Установка игр с кэшем [FAQ]

Сообщение отредактировал Kenny — 15.08.19, 02:08

Новости о Andro >

Android Wear — платформа для носимой электроники, официально представленная компанией Google на конференции Google I/O 2014. Предназначена для носимой электроники и умных часов. Первыми на данной платформе были выпущены LG G Watch, Samsung Gear Live и Motorola Moto 360. В дальнейшем компания Google будет делать ставку в Wearable Electronics именно на платформу Android Wear.

Связанные теги

Похожие теги:

Вчера Google анонсировала изменения в системе Wear OS. Носимые устройства получат новые функции и в целом станут более отзывчивыми и удобными. На обновление могут рассчитывать владельцы практически всех умных часов. Исключением станут пять моделей.

Google работает над одним из самых крупных обновлений для Wear OS, в прошлом известной как Android Wear. Об этом Engadget рассказал директор по продукту компании Google Деннис Тропер. Он поделился некоторыми подробностями о предстоящем апдейте, продемонстрировав несколько скриншотов. Читать далее

Американская компания Skagen представила второе поколение умных часов — Skagen Falster 2. В отличие от Falster, второе поколение получило GPS-модуль, NFC и многое другое.

Вместе с выходом Android P Developer Preview 5, незначительные нововведения которой описаны здесь, апдейт добрался и до приложения Wear OS. Обновление улучшит работу умных часов, ускорит запуск программ и сделает использование более удобным.

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

Компания Google сегодня известна пользователям не только в качестве популярнейшего поискового сервиса, но и своей операционной системой для смартфонов, очередная версия которой — Android P — была недавно показана публике. Но эта платформа не является единственной, развиваемой поисковым гигантом. И порой изменения, которые позволили бы устройству дольше работать без подзарядки, не радуют разработчиков приложений.

Китайский производитель смартфонов Huawei представил обновленные смарт-часы Huawei Watch 2 (2020). Новинка унаследовала почти все отличительные черты модели предыдущего поколения, сохранив ее внешность и аппаратную начинку, которая осталась практически без изменений. Читать далее

Ранее мы упоминали AsteroidOS – операционную систему для умных часов с открытым исходным кодом, которая разрабатывается с 2015 года. Сегодня самый важный день в жизни этой операционной системы – день выхода ее первой версии в свет. AsteroidOS 1.0 уже доступна, и ее могут установить владельцы умных часов на операционной системе от Google.

В феврале прошлого года Huawei представила новые флагманские часы. Watch 2 получили круглый AMOLED-дисплей с разрешением 390 х 390 пикселей, чип Snapdragon Wear 2100 и аккумулятор на 420 мАч. Также есть защита от воды по стандарту IP68 и 768 МБ оперативной памяти. Модель оказалась настолько успешной, что в этом году производитель не будет практически ничего менять.

На прошлой неделе Эван Бласс рассказал об анонсе первых умных часов Google. Компания представит их осенью — вместе со смартфонами Pixel третьего поколения и обновлёнными наушниками Pixel Buds. Подробностями инсайдер не поделился, но ему на помощь пришли другие источники.

Цукерберг рекомендует:  Водородные аккумуляторы для смартфонов
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих