• UX UI

UX/UI Tools

Recently my work college and I have been testing the current app I am developing with some users which their age average is 75+. So he actually introduced me to a really cool UI/UI tools which i want to list below. These tools have allowed us to capture exactly how the users use the app.

lookback.io - Simple & powerful user research

Capture exactly how users experience your product: no guesswork required. It is really easy to use. It can record your product running from any device or your computer.

  • Capture the user experience: Lookback lets your users record interactions with your product: their screen touches, clicks, even their face and voice.
  • Understand user behavior: Run tests on different platforms and devices. Analyze the recordings in a central dashboard. Build a full picture of how people experience your product.
  • Collaborate and share: Add comments to identify important moments. Share learnings based on powerful data. Fully integrate to make UX front and center of your product development.

How to use:

  • Download lookback software
  • Login
  • Connect cable to device (ios, android)
  • Start recording
  • Share with your team

Check lookback.io

Invision - RAPID PROTOTYPING FOR ANDROID PHONES & TABLETS

Invision will help you to transform static designs into interactive prototypes.

Features:

  • drag and drop
  • templates
  • full of examples.

Check Invision tool

Dagger A fast dependency injector for Android and Java

Since I started developing in Java and then move to Android I have found really 4 design patterns/practices usefull:

  • Singleton
  • Facade
  • Factory
  • Dependency Injection

Recently I have been introduced to dragger which includes singleton, DI by default.

#Dragger

Dagger is a fully static, compile-time dependency injection framework for both Java and Android. It is an adaptation of an earlier version created by Square and now maintained by Google. Dagger aims to address many of the development and performance issues that have plagued reflection-based solutions. More details can be found in this talk(slides) by +Gregory Kick.

Examples:

Android design Patterns

Using good development practices and development patterns help you to build better apps, increase quality of the product and increase your productivity.

Android has 3 groups of patterns:

  1. Creational patterns: how you create objects.
  2. Structural patterns: how you compose objects.
  3. Behavioral patterns: how you coordinate object interactions.

Creational patterns

The main reason of these pattern is to get a object efficiently reducing the duplicate code as well:

  • Builder
  • Dependency Injection
  • Singleton

Structural patterns

The main reason of these pattern is to define how the object works and their structure.

  • Adapter
  • Facade

Behavioral patterns

The last pattern is actually related to how different objects interact each other.

  • Command
  • Observer
  • Model View Controller (MVC)
  • Model View ViewModel (MVVM)

Sentry: Stop hoping your users will report bugs

I have worked with so many different crashing reports. Some of them out of the box easy to integrate with Android and iOS and pretty much all of them give you enough information. However, I have been using Sentry for more than a year and Im in love with it. Even you can host in your premise.

Easy to customized and a you can use the power or TAGs. So you can categorized your logs, events, other.

Sentry

Sentry’s real-time error tracking gives you insight into production deployments and information to reproduce and fix crashes.

Links:

  1. Sentry
  2. Raven a good client for java easy to integrate

Swagger: A POWERFUL INTERFACE TO YOUR API

Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability.

We created Swagger to help fulfill the promise of APIs. Swagger helps companies like Apigee, Getty Images, Intuit, LivingSocial, McKesson, Microsoft, Morningstar, and PayPal build the best possible services with RESTful APIs.

Now in version 2.0, Swagger is more enabling than ever. And it’s 100% open source software.

Links:

  1. Swagger
  2. Apiary
  3. Documentation - Publish
  4. Other Top Links

Get Started

If you’re an API provider and want to use Swagger to describe your APIs - there are several approaches available:

A top-down approach where you would use the Swagger Editor to create your Swagger definition and then use the integrated Swagger Codegen tools to generate server implementation. A bottom-up approach where you have an existing REST API for which you want to create a Swagger definition. Either you create the definition manually (using the same Swagger Editor mentioned above), or if you are using one of the supported frameworks (JAX-RS, node.js, etc), you can get the Swagger definition generated automatically for you. If you’re doing JAX-RS have a look at the example at https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-JAX-RS-Project-Setup-1.5.X. If on the other hand you’re an API Consumer who wants to integrate with an API that has a Swagger definition you can use the online version of the Swagger UI to explore the API (given that you have a URL to the APIs Swagger definition) - and then use Swagger Codegen to generate the client library of your choice.

In either case - be sure to check out the long list of both open source projects and commercial vendors that are available for Swagger - perhaps there is something there targeting your specific needs.

Swagger Tools

The major core tools are:

  • Swagger Core Java-related libraries for generating and reading Swagger definitions
  • Swagger Codegen Command-line tool for generating both client and server side code from a Swagger definition
  • Swagger UI Browser based UI for exploring a Swagger defined API
  • Swagger Editor Browser based editor for authoring Swagger definitions in YAML or JSON format

Adjacent tools also provided by the Swagger project are

  • Swagger JS Javascript library for consuming Swagger-defined APIs from both client and node.js applications
  • Swagger Node Swagger module for node.js
  • Swagger-Socket expose/invoke Swagger defined APIs over WebSockets
  • Swagger Parser Standalone library for parsing Swagger definitions from Java

Android Guides: Extensive Open-Source Guides for Android Developers

Doing some research about android standars and guidelines I came across these github repo with a really valuable links:

Called: CodePath Android Cliffnotes

Welcome to the open-source Codepath Android Cliffnotes! Our goal is to become the central crowdsourced resource for complete and up-to-date Android content and tutorials. Just take me to the notes!

CodePath Android Cliffnotes

Actually I have joined the community and I have started adding content in the wiki page for the CodePath for android. My first contibution was adding information about Realm database framework and Swagger, two of my favourites libraries.

:)

Stackshare: The tools and services used by some of the world's best startups

I remember working for a proactive Dev Leader, he always used to push us to keep learning new stuff. In fact one of the KPI was to learn 5 skills or more during the financial year.

So, I am going to list some good ways to find out what skills would be handly to have:

  1. Search Google.
  2. Search Seek. Job advertising skills.
  3. College.
  4. Meetups.
  5. Conferences.
  6. Blogs for developers

Most of the them required a bit of time and sometimes the result of finding the skill are not the want you expected. So My dev leader actually pointed me a really good website that you can actually see what technologies big companies are using:

Stackshare

Spread the words!!

  • TED

Bill Gross: The single biggest reason why startups succeed

Watch here!!

Really good video that a friend of mine (Gorge) displayed in our Tech Talk at HCX - Telstra Health, if you guys are into the Startup business these could be interesting.

  1. Timing: Most important value. Right product at the Right time.
  2. Team/Execution: Needs to be well execute with the right people.
  3. Idea: Any idea could be good.
  4. Business Model: Some companies start without a business model. These evolve according to the market requirements.
  5. Funding: Lot of ways to get funding along the way.

Lesson: Keep learning: Being a Better Developer: Learning Skills That Aren't On Your Resume

One of my favorites talks in the last DDD Melbourne by Shawn Wildermuth:

“As developers we spend a lot of time chasing technical skills like JavaScript, C++, and Angular. But the reality is that it the skills you have when you get a job are rarely the ones that you will use for your entire tenure. When I evaluate talent, I focus on the skills that don’t go well on a resume: communication, teamwork, estimation, and active listening. In this talk, I’ll delve into why these skills are crucial to being a great developer and how you acquire the skills.” By Shawn Wildermuth

From Shawn I actually memorized a really good sentences, that in fact it represents my personality and passion for learning and dont get stack on the monotony:

“Developers are hired because of their skills, but that’s a mistake. Developers are learners, not technicians”

Any comment???