Profile cover photo
Profile photo
Hossain Khan
140 followers -
It's never too late...
It's never too late...

140 followers
About
Posts

Post has attachment
In case you are wondering on how to set custom domain for your #GitHub pages site, here is a quick blog I made...
#GitHubPages #CustomDomain

Post has attachment
Published my personal portfolio web hosted in github.
#AndroidDev #AndDev #Portfolio #GithubPages

Post has shared content
Best Google Play Apps of 2017

Our 'Best of 2017’ App picks → goo.gl/eqXcuh

Check out some of the most loved and beautifully designed apps of the year in our ‘Best of 2017’ collection. Huge congrats to the devs for achieving this recognition and bringing exceptional quality experiences to Android users across the world!

Post has shared content
Delve deeper into #Android #Dev and learn about adding sensors, maps, places, custom views, animations and more to your app with our new course!

Get started here → goo.gl/9g1nQ5

Post has attachment
Even better way to learn Kotlin. 🤓

Post has shared content
GDDEurope ’17 was full of talks, codelabs, instructor lead courses, networking opportunities, and more

Watch the highlights here: goo.gl/aVdhX3

We recorded all the sessions - you can find them here: goo.gl/6BFfHv

Google Developer Days (GDD) are global events showcasing the latest developer products and platforms from Google to help you quickly develop high quality apps, grow & retain an active user base, and tap into tools to earn more.

Post has shared content
Open Wonder with #AndroidOreo. Your favorite cookie meets the smarts of Android: android.com/versions/oreo-8-0
Animated Photo

Post has attachment
It's #oreo 🙌

Post has shared content
Today we're releasing the source code for the Google I/O 2017 Android app!

Check out the features we added here: goo.gl/EfTfDw

The most prominent new feature for 2017 is the event reservation system, designed to help save in-person attendees' time and provide a streamlined conference experience. Reservation data was synced with attendees' conference badges, allowing event staff to verify reservations using NFC-enabled phones. Not only was the reservation feature incredibly popular, the reservation data helped event staff change the size of session rooms both before and during I/O to adjust for actual demand for seats.

Post has shared content
Design for Offline: Android App Architecture Best Practices
Pro-tip by +Joanna Smith

Having a solid code base to work off of can make it so much easier to build better apps. +yiğit boyar and +Adam Powell talked at #AndroidDevSummit about Android Application Architecture patterns and best practices (https://goo.gl/CXjzY8). Their main point? Design your app to work offline, and it’ll work beautifully all the time. And, as promised, they released their sample code (https://goo.gl/QiBbgD), so that you can see it for yourself.

Adam and Yigit illustrated these best practices by walking the audience through some common scenarios to avoid, by offering clear and actionable advice, and by showing off a true use case with a client-server demo. But ultimately, everything circled back to the idea that your app should be offline-capable first, and cloud-synced second. Because users don’t care if the network is bad. They just see your app “freezing up” and they uninstall you.

Is your app UI dependent on the network?
This is a great opportunity for something to go wrong. For example, if you’ve got a progress dialog while you kick off that background process or, even worse, until the network responds, then you are doing it wrong. The suggested solution? Have a Model between your ViewController and any network access. When there’s new data from the server or for the server, use events and callbacks to let your ViewController know to check in with the Model. That way you can act locally, but sync globally. You never want your app to look like it forgot something or is stuck.

Does your app distinguish between local and network tasks?
Offloading work to threads is a great idea, but you want to avoid spinning up too many threads. The question now is are you spinning up enough? It’s important to have a separate queue for local tasks vs network tasks. Because if the network queue gets hung up, the local one can continue to update the UI, get data from the user, and add to the network queue without your app showing any signs of distress. Especially since it’ll all catch up when the network signal is strong again.

Other too-obvious-to-consider architecture advice:
Design your backend for your client. Not the other way. Users only see your client.
Send your client metadata about large chunks of data, like a photo. Sending the size of an image lets you set up the UI with a placeholder, for example, while waiting on the larger download.
Activities vs fragments. It’s not either-or. Choose an approach that works for your app, and use fragments to organize so that you don’t have monster-activities.
Ugly code is okay, if it helps your users.

All of this feeds into the idea of designing for offline. Events and callbacks allow you to build an app that will succeed in a good environment anyway, but also in a bad one where the network hates you. So if you want to hear more of what Adam and Yigit had to say, check out their talk, run the sample, and then shamelessly copy all of the parts you like in order to #BuildBetterApps .
Wait while more posts are being loaded