Image for post
Image for post

Google Cloud Datastore is a managed, schema-less and highly scalable NoSql database that is especially helpful for developers who want to worry less about scaling their database as usage grow. It is built on top of Google’s Bigtable Database and it has a lot of powerful features and you might want to consider it for your next project, but before you do so here are some quick tips that you should know so as to avoid some pitfalls with using this database.

  1. Google Cloud Datastore is not SQL, its not even close.

Google Cloud Datastore is a NOSQL database but when people and documentations try to explain the concept they tend to compare it with SQL e.g Entities could be compared to Tables and its properties to Columns, since a lot of developers are already familiar with SQL. Also Datastore also has a powerful query engine that allows you to query for data and even sort the data accordingly, this might make developers assume that they can model their data like they do in SQL. But the truth is that Datastore’s underlying implementation is quite different from SQL, here are some key differences. …

Image for post
Image for post

One common situation that arises when building enterprise application is implementing a chain of business processes after one process is successful, for example, if you are building a shopping website, you might want to do the following after payment for a product is successful

  1. Reduce the number of items available in the store after the purchase.
  2. Send the shop owner a receipt for the purchase.
  3. Send the buyer a receipt for the purchase.

In some cases, you might want these processes to be atomic with respect to the product purchase, that is, after product purchase occurs the number of items must decrease, revert the product purchase if there is a problem decreasing the number of available items. …

From my previous article on Initializing paystack transaction we initialized a transaction and got a payment url for the user to make payment using paystack, today we would verify if the user has completed his payment.

To verify a transaction, we send a request GET request to the paysatck verification url, passing the reference we generated when making the transaction as a path parameter.

this is the verification URL:

The sample response we get for a successful transaction is shown below:

the 2 most important values we are interested in this Json response

A. The reference which we would use to identify the transaction we made (this is the reference we generated while initializing the transaction). …

I recently had to implement Paystack payment into a java web application and I was impressed with the payment flow and how easy it was to implement. One part I liked so much is that you do not have to send a request after initiating payment to verify if the payment was successful instead they send you a request to verify a transaction or to notify you of its failure.

Today, I would demonstrate how to initialize a paystack transaction, and generate a payment url.

First of all, lets understand the paystack payment flow, these are the steps.

  1. Register to get an api key. …

The Navigation Drawer is a very important component in an android application as it allows users to easily navigate to different parts of your application without having to go through some set of Activities and fragments. We often need to have our navigation drawer in many activities and it would be painful if we have to repeat the code for creating the drawer in different activities, that would also go against the DRY principle.

One way of solving this problem is to create a Base Activity that would have the Navigation Drawer and all other activities that needs to have the Navigation Drawer would inherit from that Activity. …

In Android development, developers usually have to handle some sort of selection from a list of items. When these items could potentially become many, then a Recycler view is usually a good choice for holding these items because it recycles it’s content and thus improves performance. But since Recycler view recycles it’s items, views that have toggling behaviour(check boxes, switches erc) usually behave unpredictably with Recycler Views this especially happens when developers do not handle the logic of displaying the current state of the view (checked/unchecked)

The common way a developer can go about setting the state of the view is set it to checked when the view is clicked then uncheck it when the view is clicked again by checking the previous state of the view.

I migrated this story to my blog, please continue reading here

I recently started using Realm as my mobile database and it has proved to be a very good solution as it is easy to implement and also it is live, so updating the User Interface to reflect changes in the underlying database is very easy.

But as with every other database, you often need to view its content without using the view from your application directly, Realm provides a solution for that through the Realm Browser. With the realm browser you can view and even edit the data from your realm database. …

Image for post
Image for post

Singleton have been a very popular design pattern as it is proven t+

o have some advantages compared to global variables, the Gang of four book listed the following benefits of using singleton:

  1. Controlled access to sole instance.
  2. Reduced name space.
  3. Permits refinement of operations and representation.
  4. Permits a variable number of instances.
  5. More flexible than class operations.

Web application developers have often found it useful as a form of caching mechanism using it to hold some data that needs to be accessed so often that that fetching it from the database might be a performance overhead, example of that might be access token for API authorization. …

While developing an android application using java, I had to get data from an API endpoint and I discovered a library that made the job very easy for me. That library is RETROFIT, it allows you define your api endpoints as interface and then you can call the methods you defined conveniently and retrofit would provide an implementation of the interface you declared through dependency injection. Thus you do not have to worry about loading the data from the endpoints and handling asynchronous tasks. I wondered if I could do the same with so I searched if retrofit has an implementation for, …


Ozioma Ogbe

Engineer, interested in software development and chess.

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