Message:

Subscribe rss
Blog categories

This series of tutorials was prepared by:

download - How to create the LinkedIn clone using Backendless

 

Ega Wachid Radiegtya
An Entrepreneur & App Developer

You will learn how to make your own LinkedIn clone on Android, using React Native, React Navigation, Redux and Backendless.
The following tutorial series is exactly what you’re looking for if:

  • You have a basic knowledge of React/Redux
  • You’re looking to learn how to make apps in the most simple way
  • You want to try using mobile backend for your apps

Technology stack:

  • React
  • Redux
  • Backendless

What you will learn:

By following the instructions in these articles, you’ll get the knowledge and skills required to build simple Android apps using Backendless mBaaS for your business logic.

Summary:

Part 1: Introduction

You will learn about the tools required for the task and how to set up the development environment to proceed.

https://medium.com/@radiegtya/build-linkedoff-using-react-native-redux-and-backendless-part-1-introduction-9575221f35db

Part 2: RN Setup 

You will do your first steps to get some basic functions for your app.

https://medium.com/@radiegtya/build-linkedoff-using-react-native-redux-and-backendless-part-3-backendless-setup-eb9c8c60197e

Part 3: Backendless Setup

You will get familiar with Backendless and start building the server side logic for your app.

https://medium.com/@radiegtya/build-linkedoff-using-react-native-redux-and-backendless-part-3-backendless-setup-eb9c8c60197e

Part 4: RN+ Backendless; Building The App

You will finalize the visual part of your app and will get a functional Linkedin clone.

https://medium.com/@radiegtya/build-linkedoff-using-react-native-redux-and-backendless-part-4-rn-backendless-c0e5645c89b5

Backendless and Firebase, both being mobile BaaS platforms, are presenting different capabilities for mobile apps creation.

Here is a list of the Backendless features which either are not supported by Firebase or just exceed it in usability.

  1. Backendless Pro (the standalone, self-hosted version of the product) can be installed on the developer’s computer, a private data center or a public cloud. No matter where it’s installed, the product has no functional limitations whatsoever
  2. With Backendless you can fully customize permissions for users, and also configure permissions for custom user roles, which is not supported by Firebase
  3. Backendless allows you to develop the server-side algorithms and business logic without actually writing any code using Codeless Programming
  4. Firebase does not support native aggregate functions in database queries. With Backendless, you can calculate average, sum, min and max values for a collection of objects without retrieving objects from the server. It is also possible to find the object count for all the records in the database or a subset of records

    For example, the aggregate function sum allows you to calculate the mathematical sum for a set of objects. For instance, you can take the Movie table from the presented database.DB - Five things you cannot do with Firebase (but can with Backendless)
    Just run the following query to get the amount of topBoxOffice of all movies:

    The output is an object with the sum property:

    Backendless also supports results grouping for a column. This column can either be found in the original or linked table. For example, the following query will display the sum of all the orders grouped by a country:

    The output for this request is a collection of objects, any of which contains the total amount of orders for a particular country:

    You can also add a filter to the grouped objects using the having condition. The following query will return only groups of countries with the total amount of orders > 10000 . The output for this request is a collection of objects, any of which contains the total amount of orders for a particular country:
  5. Since Firebase uses JSON document as a database, it becomes extremely difficult (or in many cases impossible) to create relations between objects. Backendless makes it convenient to manage the relations (create, modify, delete) both via Console and with the API. In Firebase, you need to duplicate the data for each element, which causes synchronization problems for the identical objects that have one-to-many relations.

It is worthwhile to point out the following:

  1. Backendless allows you to import data from Parse. Importing data from external databases will become available soon as well
  2. Firebase, unlike Backendless, does not allow you to make complex queries on the server, only basic filtering is supported. For more details see: backendless.com/docs/rest/doc.html#data_search_with_subquery
  3. The Backendless Console is way more convenient and has more functions, compared to the one in Firebase
  4. Backendless support is beyond comparison. Here’s what real users have to say
  5. Backendless version 5 launch happens soon! New features are described here

 

Posted in Uncategorized

In this article, we’ll talk about Backendless publish-subscribe messaging. One of the frequent questions we receive is: ‘How to get messages long after they are published.’ The default mechanism in Backendless keeps messages in the published channel for a short period of time only (around a minute). This becomes a problem if subscriber needs to have access to the messages after that time period has passed. This article describes an approach for storing published messages in Backendless database in order to keep published messages accessible even when they are no longer present in a messaging channel.

Publish-subscribe is a Backendless messaging pattern. The main idea here is to exchange data between a publisher* and subscriber** within a messaging channel***.

publisher – a program using the Publishing API to send messages to a channel.
** subscriber – a program using the Subscription API to receive messages from a channel.
*** channel – a logical intermediary “transporting” the messages.

In order to keep messages accessible for an infinite period of time – you can save messages into the Backendless database right after they were published. To accomplish this, we’ll need to combine Data service API and the afterPublish event handler which can be added to the Business Logic tab of your Backendless application.

handlerConfig 1024x565 - How to save published messages in the database

Once it’s added, just download the afterPublish handler code from ‘Download’ menu (you can select JavaScript or Java). Then open the generated project in any IDE and add the code to store published messages in a Backendless data table.

Alternatively, the afterPublish event handler can be added and deployed to cloud without any coding at all using Codeless business logic. Here are the steps of how it can be done:
1. Add new Codeless event handler Selection 143 1024x519 - How to save published messages in the database2. When the handler is saved, Codeless designer will be opened. Add the following blocks to your Codeless logic. When done – click the ‘DEPLOY MODEL’ button.
Selection 144 1024x535 - How to save published messages in the database
Voila!

To avoid nulls, every message should be published with a not null value for publisherId :

For this scenario we’ll need to create a data table (Data > APP TABLES in your Backendless application) called ‘ChatHistory’ and define the following schema in it:

  • Column publisher of type String 
  • Column messageData of type String 

dataTable 1024x557 - How to save published messages in the database

Once code for the handler is added, deploy the handler code to cloud using the following command in your IDE terminal:
./bin/Deploy.sh
Since the handler is deployed, every new message published to chatRoom channel will be stored in a dedicated data table and will be accessible at any required moment by calling an API to retrieve data from a table:

You will receive the following output:

It has not been a year since we released version 4 into GA (it went live on July 3rd, 2017). There were 48 “point” releases between then and now, but we also have been hard at work on the next major version of Backendless – version 5. The new release will be backward compatible – when the release goes live, your applications will continue to work as before. If you decide to upgrade the client-side libraries, you will get access to all the functionality in the new version. What does the roadmap for version 5 look like? See answer below:

  • Real-time Database – your app can subscribe to receive real-time updates when new objects are created in the database, or existing objects are updated or deleted.
  • Real-time Publish/Subscribe messaging – we changed the subscription model so the published messages are pushed to the client applications instead of the current “pull” model.
  • Real-time logging console – See and inspect your app’s log messages in Backendless console in real-time.
  • Remote Shared Objects (RSO) – This is a jewel of real-time messaging. Unless you had experience with RSOs in the Flash/Flex world, it will be a new concept for you. Wait for the release and be prepared to be amazed.
  • Redesigned Push Notifications Support – we have completely rebuilt support for push notifications. Virtually every push notification feature available in the latest Android and iOS versions will be supported in Backendless 5.
  • Mobile Landing Pages – We added a simple CMS (content management system) so you can create a landing page for your mobile app and host it in Backendless.
  • Zapier Integration – Connect your Backendless backend with 1000+ external services and APIs available in Zapier. Virtually every single API in Backendless would be available as a trigger or an action in Zapier.
  • Phone-based Authentication –  We added 2FA and the users of your apps will be able to login without any stored passwords.
  • Integration with External databases – This is a feature available only in Backendless Pro. It will let you connect your Backendless app with an external database (Oracle, MySQL, SQLServer, PostreSQL)
  • Docker-based architecture for Backendless Pro – Backendless Pro is changing to be based on Docker. This will allow for better management, scalability and software updates.

The real-time functionality is what slated for the 5.0 release. Other listed features will become available with the subsequent minor version releases.

We are very excited about Backendless 5 and I am sure you will love it too!

The release of Backendless 4.5.0 introduces support for file search in Backendless console. We already had search API in our SDKs (Android, iOS, JS, REST) and based on the feedback from the customers added search support in console. Here’s what you can do now in console:

Basic search

Type in a partial or full name of the file. Backendless displays a list of search results with the corresponding path. Clicking the file name in the “Name” column opens the file in a new browser tab. If the search result is a directory, clicking it will open the search result screen for that directory. There is also the “Search in subdirectories” checkbox, the meaning of which is quite self-explanatory:

basicsearch withsubs - File Search in Backendless Console

Search with a glob pattern

The search query can use the glob syntax to express patterns for file and directory names:

search with glob - File Search in Backendless Console

Search in Create a File Relation

Your database schema may include columns with the FILE REFERENCE type. Here’s an example of such data table column:

create file ref - File Search in Backendless Console

When you establish a relation with a specific file, you work with the popup shown below. As you can see, it now has an ability to perform file search:

create file ref popup - File Search in Backendless Console

Enjoy!

All available APIs for creating, updating and deleting objects in the Backendless database operate on single objects. It means when you need to store multiple objects in the database, each object requires a separate API call. This increases the number of API calls your app makes. While it is great for us (hey, our billing is based on the API calls), it is not that great for your app as it results in longer processing times and substandard user experience. Starting today, with the release of Backendless version 4.5.0 we’re introducing the new APIs which will allow you to create, update or delete multiple objects with a single API call.

Bulk Create

Saving multiple new objects in the database is now as simple as passing an array of objects to the server. The server responds with a collection of objectId values (which, for example, can be used in the createRelation  API). The bulk create API is supported in all SDKs as well as the REST interface.

Bulk Update

To update objects in the database, the API accepts a condition (where clause) which identifies a group of objects. In addition to the condition, the client must also provide an object containing the changes which should be applies to the selected objects.

Bulk Delete

Similar to “Bulk Update”, this API receives a condition which identifies a group of objects to be deleted.

All of the APIs can be extended using custom business logic’s before/after events.

You can find the documentation for these APIs in the developer guides:

If you have any smart IoT devices in your home or office and tried controlling them with Alexa, you might wonder how it actually works. In this guide you will learn about building a custom Alexa skill which will let you control a wi-fi enabled light bulb with Alexa. You will be able to turn the light on/off and change the light colors. You can see a demo of the completed project as well as an overview of its components in the video below:

The solution consists of the following components:

  • Amazon Alexa-enabled device (Amazon Echo)
  • A custom Alexa skill, which is an API service running in Backendless
  • An API service which contains the logic of controlling the light bulb
  • A wi-fi enabled light bulb, for this we used a LIFX bulb.
Continue reading

mudasar 150x150 - Case study: a young entrepreneur discovers Backendless and a builds a social network for gamersHappy New Year, everyone!

Here at Backendless we hear a lot of cool and interesting stories about people using our technology to build awesome things. Every now and then we come across some truly inspiring ones. Here is a story of Mudasar Javed, a 16 year old developer from Australia who launched a social network app for gamers. It was quite exciting to learn about his path of learning about programming and how Backendless could help him with getting the app off the ground.

Click below to read the case study:

https://backendless.com/platform/ra1n-entertainment-case-study/

Posted in Case Study

This post describes the process of developing an API Service in Backendless with JavaScript. You will learn:

  • how configure your development environment
  • include NPM dependencies
  • run the service in the debug mode and test it using the Backendless console
  • deploy the service to Backendless

The service you will develop in this guide will provide APIs for controlling a LIFX wi-fi enabled light bulb. This very service is used in the article describing how to integrate Amazon Alexa with an IoT device using Backendless. This article references IntelliJ IDEA as the IDE, however, it is not required, you can use any code editor. Make sure to create a Backendless account and create an app in Backendless Cloud (the free tier or the trial option will be plenty to proceed).

Continue reading

This is Part 2 of the article about developing an Amazon Alexa skill without any coding. In Part 1 you learned the following:

  • How to create a Codeless API Service responsible for handling Amazon Alexa requests. The service completely removes the need for adding AWS Lambda functions, it also runs without any cost in the free plan of Backendless.
  • How to create a Codeless custom function which composes a response back to Alexa.
  • How to create a basic Alexa Skill and test it from the Amazon developer console.
  • How to invoke the skill on Alexa, process the invocation in your Codeless Backendless API service and get a response back on Alexa.

In this part of the article, you will learn the following:

  • Creating voice interaction model with “slots” – special placeholders for the “dynamic” parts of the requests for your skill
  • Processing slots in the Codeless API service in Backendless.
  • Executing codeless logic to do something useful and generate a meaningful response.

It is recommended (more like required) to go through Part 1 just so you have the basic environment setup. Also, make sure to watch the “Developing an Alexa Skill without any coding” video which shows the entire process in action.

Continue reading
Posted in Alexa, Codeless