Location sharing is “The next big thing”

Hello dear reader,

5b6b45f022a45f0d1b2e05a8c35f85c4It has been a busy last few weeks for many companies, it seems that they have decided that our vision for the last four years was correct and have decided to roll out location sharing in a variety of Apps. Curiously they all have understood that constant location is totally absurd, and that what users really want is a timed experience that respects privacy (Please, our dear friends at Zenly take note, constant location sharing is off the plate for most users)

The first announcement was a rumour that WhatApp was rolling this out for groups. It came out as a post on Reddit and sparked a massive privacy outrage. This is no surprise, since it was the same day they announced targeted ads. You can read more about it here: https://techcrunch.com/2017/02/03/whatsapp-tests-real-time-location-sharing-in-its-app/

The second came from Google Maps, they have decided your hangouts contacts could use a little sprucing from knowing your location, although it only works in a unidirectional paradigm (unless you both send a request). They made a funky video in a Google-style that illustrates the approach.

Last, but not least, in an attempt to copy everything that works, Facebook (or pseudo Snapchat as some people say) decided to join the party too. You can now share your live location with your messenger contacts. https://9to5mac.com/2017/03/27/facebook-messenger-live-location/

It is clear why all these big names are pursuing this, and it is clear that it is time for a leader to take the market. However, I personally wouldn’t trust those big names with my location data. After all, we have seen what and how they use it for. There is a reason why we at Wave have had this approach from the beginning, we are completely focused on being the best-most private location App. So, do yourself a favour and stay with who will never save or use your data, always use the best technology, and, why not, the cooler App ;).

giphy_7

There is a reason we have been so quiet lately, so keep your eyes peeled, because we are about to make location sharing go from red hot, to absolutely scorching ;)!

Feel free to drop a line in the comments!

Until next time!

Advertisements

Google Certification Q&A

Hi again!

As promised, after obtaining my Google Certification exam as I mentioned in my previous post (https://pabloclementeperez.wordpress.com/2017/03/21/google-certified-associate-android-developer/), and since there is still few and scarce information online, I have decided to write up a comprehensive QA on how the exam works. I hope you find it useful!

developers_logo

What is it?

Google Developer Certification is a program designed so you can show what you can do and not simply what you know. It allows you to demonstrate your proficiency and skill with typical tasks that you as a developer perform daily in your job.

In taking and passing a certification exam, you will become recognized for your skills, which in turn will allow you to promote yourself to relevant communities, projects, or employers.

You can view the full announcement here:

How to get ready?

It is important to bear in mind that this certification is handled both by Google and Udacity, in fact, if you go into the offitial website, you are recommended the Andriod Developer Fast Track course. I received a scholarship for this course, and it has a very similar format as the exam, you are given Android Studio Projects with to-dos that run you through the basics. If you are not entirely sure if you know everything, or are afraid of the exam format, it might be a good investment. There are a couple of caveats to bear in mind though:

-The course does not cover everything in the exam, such as UI testing and unit testing.

-The course is a mixture of other courses and sometimes feels as if it was put together to make use of these instead of a tailormade course.

What do I have to know?

The offitial requirements are: 

Testing and Debugging

Writing tests to verify that the application’s logic and user interface are performing as expected, and executing those tests using the developer tools. Candidates should be able to analyze application crashes, and find common bugs such as layout errors and memory leaks. This includes working with the debuggers to step through application code and verify expected behavior.

  • Write and execute a local JVM unit test
  • Write and execute a device UI test
  • Given a problem description, replicate the failure
  • Use the system log to output debug information
  • Debug and fix an application crash (uncaught exception)
  • Debug and fix an activity lifecycle issue
  • Debug and fix an issue binding data to views

Application User Interface (UI) and User Experience (UX)

Implementation of the visual and navigational components of an application’s design. This includes constructing layouts–using both XML and Java code–that consist of the standard framework UI elements as well as custom views. Candidates should have a working knowledge of using view styles and theme attributes to apply a consistent look and feel across an entire application. Understanding of how to include features that expand the application’s audience through accessibility and localization may also be required.

  • Mock up the main screens and navigation flow of the application
  • Describe interactions between UI, background task, and data persistence
  • Construct a layout using XML or Java code
  • Create a custom view class and add it to a layout
  • Implement a custom application theme
  • Apply a custom style to a group of common widgets
  • Define a RecyclerView item list
  • Bind local data to a RecyclerView list
  • Implement menu-based or drawer navigation
  • Localize the application’s UI text into one other language
  • Apply content descriptions to views for accessibility
  • Add accessibility hooks to a custom view

Fundamental Application Components

Understanding of Android’s top-level application components (Activity, Service, Broadcast Receiver, Content Provider) and the lifecycle associated with each one. Candidates should be able to describe the types of application logic that would be best suited for each component, and whether that component is executing in the foreground or in the background. This includes strategies for determining how and when to execute background work.

  • Describe an application’s key functional and nonfunctional requirements
  • Create an Activity that displays a layout resource
  • Fetch local data from disk using a Loader on a background thread
  • Propagate data changes through a Loader to the UI
  • Schedule a time-sensitive task using alarms
  • Schedule a background task using JobScheduler
  • Execute a background task inside of a Service
  • Implement non-standard task stack navigation (deep links)
  • Integrate code from an external support library

Persistent Data Storage

Determining appropriate use cases for local persisted data, and designing solutions to implement data storage using files, preferences, and databases. This includes implementing strategies for bundling static data with applications, caching data from remote sources, and managing user-generated private data. Candidates should also be able to describe platform features that allow applications to store data securely and share that data with other applications in a secure manner.

  • Define a database schema; include tables, fields, and indices
  • Create an application-private database file
  • Construct database queries returning single results
  • Construct database queries returning multiple results
  • Insert new items into a database
  • Update or delete existing items in a database
  • Expose a database to other applications via Content Provider
  • Read and parse raw resources or asset files
  • Create persistent preference data from user input
  • Toggle application logic based on preference values

Enhanced System Integration

Extending applications to integrate with interfaces outside the core application experience through notifications and app widgets. This includes displaying information to the user through these elements and keeping that information up to date. Candidates should also understand how to provide proper navigation from these external interfaces into the application’s main task, including appropriate handling of deep links.

  • Create an app widget that displays on the device home screen
  • Implement a task to update the app widget periodically
  • Create and display a notification to the user

 

What is the exam like?

The exam consists of two parts. The first one is an Android Studio Project with a set of requirements and user feedback. The idea is you are given a project a previous developer left in a hurry and have to complete a series of tasks ASAP. It includes creating new screens, modifying code, adding persistence, creating widgets, showing notifications, writing tests and fixing bugs reported by users.

You have 48 hours to complete the exam, but if you are a proficient Android developer it should take you around 6-10 hours.

After the exam you will have to complete an exit interview. In this interview you will have to answer a series of questions about your App to prove that you have written the code yourself. You will also be asked general Android knowledge questions. If you have done the exam yourself, this should be a breeze.

What will I obtain?

You will obtain a badge to prove your Google Certificated Associated Android Developer status. You can view mine here.

Other questions?

Feel free to drop me a line in the comments if you would like to know anything else and I’ll update the post 🙂

 

Google Certified Associate Android Developer

 

Hi dear reader!

As some of you know, a while back I received an Scholarship from Google to take the Android Developer Fast Track Course form Udacity (https://www.udacity.com/course/associate-android-developer-fast-track–nd818). This is a course designed to polish your Android Developer skills, best practises, and development techniques in Java in order to obtain the Google Google Associate Android Developer Certification.

developers_logoThis certification is a new way Google has devised to officially prove your Android and App development skills. You can find more info in this link (https://developers.google.com/training/certification/), and by watching the following video

As part of the course, to make sure I was ready to take the certification, I had to build some cool Apps. I’ve published one so that you can see if you are up to the certification. The App (movieDB) connects to themoviedb.org database and queries the top rated and popular movies. It then downloads the movie posters asynchronously and displays them in a recycler view. Users can access a movie to view information, the trailers, and comments by other users. There is also an sqlite database that works with a content provider to save movies to watch later, and a settings screen to switch between the different modes. It uses an MVC architecture and is designed to work on limited hardware.

You can download it from the following link! It covers many basic requirements in the certification exam!

en_badge_web_generic

I recently took and passed the exam!! You can view my official badge here! It has been a great opportunity to brush up on best practises, and have the chance to have Google verify your code.

In my next post, I’ll be doing a much-asked-for QA post on the certification.

See you then!

El Niño Lottery App

Whilst reading this post, the most logical reaction is to think that it is a mistake, since the “El Niño” lottery from Spain was on the 6th. Bear with me a second please.

itunes

It turns out that after Apple’s App Store holidays, and a ridiculous time in review due to questions about the App (talk about efficiency in Apple’s App review process), the App has just arrived in the App Store. So, since it finally is ready for download, you can check (in case you haven’t already) if your number has been chosen in the most comfortable, efficient and easiest way. This App is basically a port of the Christmas lottery App.

Hope you enjoy it :)!

google-play-logo

Available_on_the_App_Store_(black)

Is 2017 the year where tech will become uncomfortable?

Hello dear reader!

Once more, it is time to say goodbye to another year and prepare ourselves for the next. I have a feeling that 2017 is going to be an amazing year, but before, it is time to take a little stroll down memory lane and think about what this year will mean to the tech world.

We could probably talk about this topic endlessly, there are many blog posts that highlight all the advancements and most important milestones in technology for 2016, but I’d like to take a minute to talk about what I think is a curious trend we are seeing.

When the IPhone 7 was launched in September, it was received among mixed feelings. Some people praised the plus double camera and the water resistance it promises, but Apple decided to kill the headphone jack and sell you some ridiculously expensive AirPods. As if that wasn’t enough, the headphones that come bundled with the iPhone have problems with the audio and you are forced to un plug them and plug them back in if that happens.

Moving on, when the new MacBook where released in October, we got a fancy touch strip, which apple dubbed the “magic bar” in their everlasting pursuit of finding cool names. This was a move to tell Microsoft that they had no interest in making a device like the surface which has a touch screen tablet surface with a full laptop. Not only did they do that, but also they removed the USB ports, leaving only USB type C ports and ironically, the 3.5 mm jack. This is fun, because if you buy an iPhone 7, you cannot connect the headphones to the MacBook Pro, neither can you connect the iPhone to your laptops. Bang up job Apple!

macbook-pro

This is particularly hilarious, because Tim Cook once addressed the audience on a keynote assuring that Apple had a clear path ahead, because it wasn’t trying to make tablets into laptops and laptops into tablets. Moreover, he used an image to define the competition which you can see below.

rodas

It’s funny though, because Microsoft Surface is on the up (they are reporting record sales compared to iPad), and the switch is mainly due to discontent with the new MacBook Pro. So one can only beg to question, who is confused? We are being imposed a new standard that might be the future, but that in the present day means we have to rely on dongles and all kinds of adapters to connect our camera, USB drives or phone to our computer. It might be the future, but do we want it today?

There an amazing video, which always manages to put a smile on a face which I think sums this all up. Hope it makes you laugh too 😉

What do you think? Are you happy with how things are moving? Or are you a bit worried about where we might be heading?

After our small rumbling, I wish you a happy new year and I hope that 2017 comes packed full of everything you desire most.

Thank you very much for reading!

See you next year!

Spanish Christmas Lottery App

It’s that time of the year when everyone starts to frantically buy Christmas lottery. It is a tradition that has been around for years and years and no one wants to be left out. It is usual that offices, gyms, coffee shops, supermarkets,etc. offer small participations and of course, hard core followers buy their own lucky numbers. There seems to be a general feeling that not buying one wherever you go could mean that you are left out in the biggest prize available (El gordo).

If you are not from Spain and would like to check out how big this is, you can watch our TV commercial from this year, which I don’t particularly like, and from the previous year (which was a masterpiece) – It seems the Spanish lottery has fallen into a Windows like type cycle, one good version and one bad version 😉 –

This year’s TV commercial:

The previous one:

The point is that many people end up with lots of number and they have to check to see if icon762xthey have won a prize. Thanks to technology, this is easier as there are webpages where you can input all the numbers and see if you have scored a lucky one. The problem is that in the end you end up retyping the same numbers again and again. With all the technological advancements we have, and having such processing power in our pockets, there had to be a simpler way we could do better. So, I teamed up with Fran, who works with me at Wave and is an awesome Android developer, to build an App that would simplify this.

I took charge of the iOS version, and he worked on the Android counterpart. The result is a visually appealing App that allows you to:

  • Check individual numbers easily
  • Saves all your history of checked numbers so that you can check them all at once.
  • Allows you to view the state of the raffle and all the prizes at just a glance.

 

The App is available on iOS and Android, and you can check it out today!

google-play-logoAvailable_on_the_App_Store_(black)

 

 

We hope you enjoy it and find it useful!

Feel free to drop us a line with any comments!

We wish you the best of luck and a very happy Christmas!

New gimmicks for wave on iOS 10!

Following our trend of delivering the best possible performance and features for our ever-growing user base, we have decided to create a cool iOS 10 today widget. You can add this to your main screen and easily access your waves with just a tap.

img_6383

This latest release also comes with revolutionizing battery performance and a much improved under the hood contacts management.

Take for it a spin and check out the massive overhaul!

We are currently getting ready to announce extremely cool features, stay tuned 😉