Everything consists of details.

It’s not a rare case when software engineers are involved in the development of a few projects simultaneously, for one or even a few products.

Usually, it requires additional dancing around the projects, VCS repositories and their dependencies set up.

This writing is mostly about tools, such as Xcode, AppCode, PODs, and how to set up comfortable multi projects workspace, using them.

Projects Requirements

For a better understanding of the scene and the actions on it, let’s emulate some real-life requirements.

The task is to develop an SDK, Sample, and Client projects that will be sold as different products.


Recently Android Graphics team presented a cross platform, real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows, and WebGL— Filament.

Then, on top of it, they’ve built Sceneform — library that in pair with ARCore, helps to render realistic 3D scenes in AR and non-AR apps, without having to learn OpenGL.

While Sceneform is a pretty fresh library, it’s already has a lot of great functionality and supports few common 3D model formats, including:

Though, things requires some dancing around. To include your models to the projects, you still need to convert them to *.sfb


Year to year, the GDG community grows in all aspects and this is not an exception for Ukraine and especially my hometown — Lviv, where GDG DevFest, the biggest Google tech conference in Ukraine and CEE, is hosted for five years already.

A ton of amazing people, sessions, knowledge and just that spirit, if you’ve attended at least one of them — you do know what I mean, if not — try it and you will have no regrets.

It’s always interesting and challenging for speakers to find new ideas, share and bring them to live. There were around 14…


This article is a part of “Secure data in Android” series:

  1. Encryption
  2. Encryption in Android (Part 1)
  3. Encryption in Android (Part 2)
  4. Encrypting Large Data
  5. Initialization Vector
  6. Key Invalidation
  7. Fingerprint
  8. Confirm Credentials

Those describes the “Secure data in Android” workshop topics. Sample application with full code snippets is available on GitHub.

In previous “Encrypting Large Data” article we spoke about cryptographic key sizes, default Java providers, symmetric keys generation and different approaches of encrypting large data on different API levels. This article will show you what is Initialization Vector, why do we need it and how to use it.

Table of Contents

  • Initialization…


This article is a part of “Secure data in Android” series:

  1. Encryption
  2. Encryption in Android (Part 1)
  3. Encryption in Android (Part 2)
  4. Encrypting Large Data
  5. Initialization Vector
  6. Key Invalidation
  7. Fingerprint
  8. Confirm Credentials

Those describes the “Secure data in Android” workshop topics. Sample application with full code snippets is available on GitHub.

In previous “Encryption in Android (Part 2)” article we spoke and tried to store, generate and manage an asynchronous keys, tried to encrypt and decrypt data using Android Key Store provider. …


This article is a part of “Secure data in Android” series:

  1. Encryption
  2. Encryption in Android (Part 1)
  3. Encryption in Android (Part 2)
  4. Encrypting Large Data
  5. Initialization Vector
  6. Key Invalidation
  7. Fingerprint
  8. Confirm Credentials

Those describes the “Secure data in Android” workshop topics. Sample application with full code snippets is available on GitHub.

In previous “Encryption in Android (Part 1)” article we spoke about Java Cryptography Architecture and Android Key Store system. This article will show you how to work with keyguard, how to create and manage cryptographic keys and how to encrypt and decrypt data in Android.

Table of Contents

  • Lock Screen
  • Choose a…


This article is a part of “Secure data in Android” series:

  1. Encryption
  2. Encryption in Android (Part 1)
  3. Encryption in Android (Part 2)
  4. Encrypting Large Data
  5. Initialization Vector
  6. Key Invalidation
  7. Fingerprint
  8. Confirm Credentials

Those describes the “Secure data in Android” workshop topics. Sample application with full code snippets is available on GitHub.

In previous “Encryption” article we spoke about basics of Cryptography: algorithm types (symmetric, asymmetric), cipher types (stream, block), modes, paddings and key types. This article will show you how encryption works in Android.

Table of Contents

  • Java Cryptography Architecture
  • Android Key Store
  • Sample Project
  • Whats Next
  • Security Tips

Java Cryptography Architecture

Android builds on the…


This article is a part of “Secure data in Android” series:

  1. Encryption
  2. Encryption in Android (Part 1)
  3. Encryption in Android (Part 2)
  4. Encrypting Large Data
  5. Initialization Vector
  6. Key Invalidation
  7. Fingerprint
  8. Confirm Credentials

Those describes the “Secure data in Android” workshop topics. Sample application with full code snippets is available on GitHub.

Table of Contents

  • Encryption
  • Algorithm Types
  • Modes & Paddings
  • Key Types
  • Whats Next
  • Security Tips

Encryption

The most effective way to achieve data security. And in this article series, we will mostly focus on it.

To read an encrypted data, you must have access to a secret key or password that allows you…


Github wiki is a great solution for creating well struct and easy to browse documentations. More of that it is placed near your code, issues and release notes. Yeah Github is great :)

But what if you are working on private repo, SDK is in active development phase and you need to share doc with potential customer ?

There are two possible solutions :

  1. Go to Google Docs and copy and format all of your pages from Github Wiki.
  2. Find a tool that will automatically generate a doc from your Wiki repo.

If you really want to hear why the…

Yakiv Mospan

Android Developer at Temy. Author. Contributor. Love what I do, working hard to become better and, of course, not forgetting to make some fun.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store