Android libraries of October

This is a couple of libraries that I’ve come across mainly from Android-Arsenal.com and Androiddevweekly.net both essential resources for keeping up to date with all 10’s of libs released each week.

Tip: If you’re using Slack/Hipchat hook up these rss feeds (aa-rss, adw) to your Android team channel/group

Android UI

https://github.com/markushi/android-uiandroid-ui-example-revealandroid-ui-example-action

As you probably saw from my previous post I’m really likely the new material design / Android L look at the moment and keen to bring some of these animations in to my apps.

This library includes 2 views :

  • ActionView – ideal for your home icon when using a nav/side menu.
  • RevealColorView – brings some of that gorgeous ripple style animation to pre L Android. I love this, I just can’t find a legitimate reason for using it the apps I’m working on at the moment.

Super Toasts

https://github.com/JohnPersano/SuperToasts default-super-toast

I’ve previously used Crouton and App-msg both good libraries, but starting new projects from now I’ll use Super Toasts.Like the Crouton and App-msg creating custom styles is easy, but where Super Toasts kills it is the option for having Card Toasts notifications appear at the top of the activity and push other content down. This was ideal of “offline” notification I needed to be permanently active on each screen while connection was lost. Also creating things like undo bar or retry toast notifications is simple.

 

AEScrypt-Android*

https://github.com/scottyab/AESCrypt-Android

Over last weekend I created and released a simple API to perform AES encryption on Android with no dependencies. This is the Android counterpart to the AESCrypt library Ruby and AESCrypt-ObjC created by Gurpartap Singh. I created this mainly due to pain I had writing some code to be compatible with AESCrypt and hoped to save others from that.

*disclaimer : I wrote this :)

 

Material Resources

Personally I’m really excited about the new design language/framework/guide from Google to be all encompassing across web, mobile, tablet, TV. I talked recently at a local meetup about some of the cool things in material design followed by a good debate about what material design is about. The main place to head to is google.com/design materialdesign-goals-landingimage_large_mdpi

Here’s some other resources:

Visual:

  • Short video intro to showcasing some of the material visual elements and interactions
  • Collection of material design elements selected by Roman Nurik on Dribbble
  • materialcolors
  • Android UX course on udacity

Implementation help

While we are on the subject of design here’s a link to Designer cheat sheet for Android it’s very much based on holo but I’m sure as L preview is released these tips will be updated.

the Nexus 10 a handy dev device

Nexus 10 can be one of those handy test devcies apart from being a descent 10″ tablet even if it’s 18+months old. One handy thing about the the it’s high res is that you simulate lower display size and/or density.  This assumes you have the Android SDK installed and adb in PATH.nexus 10
Plug in device to usb and turn off screen and try these commands to change/override both the screen res and the density:

adb shell am display-size 640×800
adb shell am display-density 480

 //if you want to reset to normal just type
adb shell am display-density reset

From Android 4.3 this command moved to the window manager (wm)
adb shell wm size 640×800
adb shell wm density 480

Let me know how you get on, you can of course use on other devices.
Credit for flagging these commands should go to Adam Powell based on his G+ post

ADiA-vidoeos

Over the weekend I was catching up on Android Design in Action videos / app and thought I’d share a couple of my favourite ones as I often have discussions about both design/brand consistency and app start up screens. Each video is ~30mins but if you can’t spare that then hit up the links to g+ posts below you’ll see links to slides.

adia_sm

UX anti patterns

https://plus.google.com/113735310430199015092/posts/6PwgQPMvK1p

Design consistency and branding
https://plus.google.com/113735310430199015092/posts/X1GT31CLFpq

Onboarding/ app start up
https://plus.google.com/113735310430199015092/posts/TC9vpt1fzJt

Happy viewing…

Useful Android cmds

These are a couple of command line commands I have never managed to commit to memory so I figured I’d blog them for reference.

Install apk on multiple connected devices
$ adb devices | tail -n +2 | cut -sf 1 | xargs -I X adb -s X install pathto/myapp-release.apk

Port forwarding device
adb forward tcp:8000 tcp:8000

Generate an Ant build.xml
$ android update project -p .

Bug logging: use P.E.A.R.S

This is bug logging acronym that I’ve used previously and works really well (from a developers perspective), I propose you do not accept any defects that do not follows pears (i.e those that don’t have the following information.)
  • Priority – indicator to the importance of the issue, 1=showstopper, 5=Meh? if timepears
  • Expected result – clear concise explanation of what you expected to happen, if possible reference requirement id
  • Actual result – What actually happened?
  • Reproduce (steps to Reproduce) numbered steps to Reproduce to error/issue. You cannot be too detailed in this section.
  • System – Os version, device mobile/version, version of app, Browser version, etc.

This came up at  a talk at Droidcon 2011, but cannot for the life of me remember who it was. It’s a great and simple idea thanks! If it was you let me know so I can credit you.

what to take to OTA13?

Not heard of Over The Air(OTA)? it’s an awesome hack-a-thon/conf in Bletchley Park, MK more info

otalogo

This list definitely has a Android developer bias. Did I miss anything?

Hacking gear

  • Laptop – fully charged and loaded with music, large files and docs on APIs needed
  • Power supply
  • dev Android smartphone
  • dev Android tablet
  • Phone with 3G tethering / 3G dongle
  • usb hub
  • x3 usb cables
  • x2 Network cables (2meter) – useful if wifi dies
  • x2 usb pen drives – useful for sharing files

Kit

Know one likes a stinker! and crap loads of coffee, redbull, beer and junk food is gonna make for some interesting BO

  • x2 T-shirts
  • Hoodie
  • Underwear/socks
  • Sleeping bag
  • Pillow
  • Washkit
  • Towel

Supplies

Plenty of brain food and caffeine

  • Bananas
  • Apples
  • Muesli bars
  • Red bull

What are you taking?

Now to think of  killer app idea!

Android PagerAdapter X of Y

Recently saw NumericPageIndicator noted in the Android developer weekly email and thought I’d share my simpler solution to having page X of Y in a view

Gmail's X of Y pager

Gmail’s X of Y pager

pager indicator.

PagerAdapter X of Y. When using a view pager you can simply override the getPageTitle to create a page x of y text as seen in apps like gmail. This was used in a app to swipe through the RSS stories with android.support.v4.app.FragmentPagerAdapter.

Alternatively you could use something like https://github.com/ManuelPeinado/NumericPageIndicator 

Gist after the break 
Continue reading

Being a successful apps developer

After judging the Bristol Uni Computer society Appathon a couple of weeks ago, several students approached me with career related questions and I thought I’d collect them up and post them. These are purely my personal views not that of Mubaloo. When I’m talking about App developer I’m meaning native app development.Treehouse_QA

Also I jotted this down in a hurry as the students needed to include some of the comments in an assignment. So expect spelling mistakes!!

What’s your favorite and worst aspect of your job?

Best bits:

  • Developing apps used by millions of people (having great designer to make them look great)
  • As head of Android I’m the go to person for Android and I shape how the company approaches the density of devices.
  • working in team with motivated and talented people – it really makes a difference when team mates are all pulling to the same goals.

Worse/challenges

  • Trying to estimate how long a app will take to make based on limited details/requirements
  • Personally I find logging time to projects tedious, it should be simple but the software is clunky at best – but in all the companies I’ve worked the time tracking tools have been subpar. – someone should write a easy to use app for it! :)
  • Being point of contact, has it’s downsides mainly lots of interruptions which can make focused development (the bit i really love) difficult.

How would you describe your company (business area, number of employees, approx number of Countries operated in)

errrm, RTM… check the website for that www.mubaloo.com

Day to day taks and in general what does a typical working day consists (design work vs paper work vs talking with clients vs actual coding etc)

  • reviewing design documents,
  • writing specification,
  • meetings with clients to dsicuss current project progress or future project developments
  • fixing defects raised in defect tracking system
  • Writing code meet specification/design

But wait, there’s more Q and A

Hardening your Android app at Devoxx UK

 

Really chuffed my talk on Hardening your Android app ws accepted at Devoxx UK on 26th/27th March. Devoxx is a diverse conference for all Java technologies, so come along a say hi. Feel free to use the 10% off code  SPUK13.

DevoxxUK_SpeakerBadge_400x400

What’s in the talk:

  • Encryption and key management on Android
  • Using SSL better
  • Android Permissions made easy
  • Make it harder to pirate/repackage your app

Plus a bunch of other tips I’ve picked up along the way.