What I Learned Attending a Serverless Conference

Four weeks ago (this week) I attended the Serverlessconf in San Francisco. The following are my notes, observations, opinions and pictures from the conference (in no particular order).

Serverless Awesome 😎

Serverless is awesome because:

  • Build apps faster
  • Development focused
  • Serverless architecture offers the most productivity and agility
  • Never think about servers
  • Never think about cost (🤔)
  • Never think about performance

A common message that I have been hearing (and reading) is that serverless allows to concentrate on app business/logic. And that’s true. You write the code and the cloud platform simply runs your function, it ensures virtually unlimited scalability and you only pay when you function is running. No need to worry about servers, maintenance, deployment, etc.

As a side note, I find “allows to concentrate on app business/ logic” message interesting because every new technology/software/framework in the past had the same message.

AWS Lambda is the Leader

AWS Lambda is no doubt the leader in the serverless space right now. Probably because they were the first to introduce serverless on their cloud. I think most non-Amazon speakers mentioned or used AWS Lambda. They are closely followed by Microsoft with Azure Functions, then Google Cloud Functions and then IBM Cloud Functions.

Contaners vs. Functions

A number of talks mentioned containers vs functions. It’s not really one vs. the other. Functions are easier and give you higher abstraction. Containers give you more control and flexibility. It depends on the context and the problem you are trying to solve. In general this is how it looks:

Continue reading “What I Learned Attending a Serverless Conference”

My Notes from Developer Relations Conference

March 26-27 I attended a Developer Relations conference hosted by Evans Data in Palo Alto, CA. I was a good conference, with great content and speakers. The conference probably had about 100-150 people which I really liked.

These are my notes from sessions and keynotes I attended. Again, these are my notes and what I was able to write down and not necessary what the presenter said/showed.

Anatomy of an Amazon Alexa Evangelist
Paul Cutsinger, Amazon – Head of Alexa Voice Design Education

  • You have to love to teach
  • You have to love to travel
  • Workshops == training
  • Send internal newsletter to show what you have been doing
  • User feedback loop
    • Important to be in meeting with product and tell them what works and what doesn’t work

Virtual Event ROI: Experiments and Learnings
Cliff Simpkins, Microsoft – Director, Azure Developer Marketing

  • Developer events
    • What has worked well
      • Focus more on in-person value, less on deep content
      • Do lecture for an hour
        • Do 15 minutes lab
    • Setup your labs so that developers get the “ah-ha” moment
    • Community events
  • Bringing engineers/experts to places that don’t usually see them
  •  Anti-hackathon
    • Tell about the hack upfront and help with the last “mile” of the project

Continue reading “My Notes from Developer Relations Conference”

Learn How to Build IoT Apps with Node-RED, Watson AI Services – in this Hands-On Workshop

Workshop Social Tile-01

Learn how to build your first IoT application using Node-RED and IBM Watson Services. This workshop will begin with an introduction to Node-RED, a browser-based graphical flow editor of drag-n-drop blocks (called a node) of functionality. Node-RED (nodered.org) is an open-source community project built on top of the Node.js runtime. The workshop will dive into the Watson IoT dashboard to visualize data and Node-RED dashboard to build a UI interface.

AGENDA

12:00 – 12:50pm: Registration and Lunch
12:50 – 1:00: Intro/welcome from Max Katz, IBM Program Director, Developer Advocacy (@maxkatz)
1:00 – 1:30: Let’s Learn about Node-RED, JeanCarl Bisson, IBM Developer Advocate – Bluemix/Watson Developer Ecosystem (@dothewww)
1:30 – 2:30: IoT Starter Lab
2:30 – 3:00: Break
3:00 – 4:00: Watson IoT Dashboard
4:00 – 5:00: Node-RED Dashboard and Advanced Topics

After the workshop, stay for pizza, beer and learn about What’s New In JavaScript: Learn about Distributed Ledgers, IoT and Node-RED.

Exposing a SQL Database via REST APIs: A Video Guide for Developers

Many organizations that are building mobile apps need to connect and reuse existing (internal) systems. One of the most common system is a relational (SQL) database. The question is — how to a relational database from a mobile app.

I have prepared two short videos that will show you how to do that using Appery.io API Express.

API Express connects to a relational database and exposes the database tables via REST APIs. Once the APIs are created, the mobile app can easily consume the APIs.

There are two approaches exposing a database:

The first approach automatically generates CRUD-like APIs to work with a database table. In many apps, this is close to 80% of what an app might need. This automatic approach also comes with very sophisticated offline support. In other words, you app can work offline and sync data with a remote database when a connection is reestablished.

With the second approach, you get full control as you write the actual SQL query (or Stored Procedure) that will be executed. With this approach, you can use a visual service editor to orchestrate the REST API. In addition to the SQL component (connector), you can use connectors such as Web Service (WSDL), REST  and others.

Check out the API Express video playlist to learn more.

Ringing in 2017 With a Big Appery.io Platform Update

The Appery.io team just pushed a big platform update with exciting new features:

  • iOS 10 Support
  • Apache Cordova Upgrade
  • Automatically Sync Backend Services Changes with the App Builder
  • Organize with Folders Inside the App Builder
  • Backend Services APIs Are Now Placed in Folders for Easier Organization
  • Improved Media Manager
  • Improved Synchronization Between App and Server for Apps with Offline Support
  • New Page to Test API Express Services and Offline Support
  • New Auto-login with Offline Support
  • IPv6 Network Support
  • Improved Server Code on Demand Balancing
  • And More…

Read about this update on the Appery.io blog.

Moving App Logic to the Server: How to Query the Database From Appery.io Server Code Script

An Appery.io developer posted a question on the Appery.io Facebook page on how to write a Server Code script to query two different collections in the database. This post will show you how to do that.

In general, querying two database collections is better to do on the server-side than from the client. Doing it on the server is a lot faster and provides you with the option to update the search without impacting the client. Plus, you can add any logic when needed. Doing it from the client would require two REST API calls to the database.

Let’s jump into the example.

First, there are two collections in the Appery.io Database. They look like this:

ProductName collection:

Screen Shot 2016-05-24 at 4.42.32 PM
ProductName collection.

This collection is simple. It has a name and a code.

This is the ProductData collection:

Screen Shot 2016-05-24 at 4.44.33 PM.png
ProductData collection.

The code in this collection links the product name to the actual product (Android or iOS device).

The input to the script is the product type: Android or iOS. Based on the input, you lookup the code for the product (a or i) and then run a second query to find all iOS or Android phones in the ProductData collection. Here is the script.

var product = request.get("type");
var dbId = "367e9e77......";
var params = {};
var result = [];

// Search for object with the provided 'type' (iOS or Android)
params.criteria = {
  "name": {
    "$eq": product
  }
};
result = Collection.query(dbId, "ProductName", params);

// Find all objects with code 'i' or 'a'
params.criteria = {
  "code": {
    "$eq": result[0].code // Either 'i' or 'a'
  }
};
// Run the query
result = Collection.query(dbId, "ProductData", params);
// Script response (API response)
Apperyio.response.success(result, "application/json");

This script first searches the ProductName collection to find the id for iOS or Android devices. Then it searches the ProductData collection to find the actual devices.

Moving this logic to the server is a good idea as you query two collections (or even more) with a single request from the client.

If you want to learn more about Server Code, check out our YouTube channel Server Code playlist.

What is Appery.io Tester App?

The Appery.io Tester app is a core component in the Appery.io platform and makes it simple and fast to test your hybrid app without installing it on the device.

The app is available for iOS and Android.

When you are creating a hybrid mobile app you need to test the app on the actual device. Using simulators is usually slow. Installing the app directly on the device each time you make a small change is also very time consuming. To solve this problem, Appery.io provides a special Tester app. When you sign into the app, you will see all the apps that you have created in Appery.io. You tap any app and launch it directly on the device. For example, if your app uses a native device API such as the camera, then you can easily test the app and the native API.

Make any change to your app, simply tap the app again in the Tester and the updated app will be downloaded and launched.

One way to sign into the Tester app where you see all the apps you have created. Another option to share the app with anyone, even if they don’t have an Appery.io account is to create a special share code.

As a developer, you can create a special share code, send it to your customer and they will be able to run and test the app by just entering the code. They don’t need to have an Appery.io account, they only need to download the free Tester app for iOS or Android.

You can create any number of share codes and also set expiration date for the code. For example, you can create one code for your external testers and another code for your internal test team, with different expiration dates.

This video shows who to test the app using the Tester app.

Happy coding and testing.

How to Expose a WSDL Service (SOAP) as REST API

Screen Shot 2016-01-11 at 4.04.07 PM.png
API Express visual editor

Appery.io API Express make it fast and simple to connect to an enterprise data source and expose it via a REST API. With API Express you can quickly create an API for:

  • Relational database.
  • WSDL service (SOAP).
  • REST API. Connecting to an existing REST API allows you to apply logic to the response. For example, you can filter the result and only return the data needed to the client.

In this tutorial I’m going to show how to expose an existing WSDL service as a REST API and then build a mobile using the API.

Continue reading “How to Expose a WSDL Service (SOAP) as REST API”

Learn How to Create User Registration & Login Backend Using Server Code and Database

Appery.io platform provides a cloud database for storing any app data. The database also has a built-in user management feature. This means if your apps needs user login or user registration – this capability is available out-of-the-box.

Screen Shot 2015-12-31 at 12.56.22 PM
Appery.io database built-in user management

The Users collection has two default columns: username and password. In most cases you will need to store additional users information such as email, address, or anything else. One option is to create additional custom columns in the Users collection. Another option is to store any user information in a different database collection and then link the Users collection to that collection. In this blog post I’m going to show you how use a separate collection to store user information and how use Pointer column type to link the two collections.

Continue reading “Learn How to Create User Registration & Login Backend Using Server Code and Database”

Appery.io: 300,000 Developers Strong and Growing

appery.io_logo_600x142

As the end of the year approaches, I wanted to reflect on what we accomplished together.  It was great year for enterprise mobility and we’re proud to have led the charge, raising the bar for cross device applications.  We’re confident that our platform will build upon the success we experienced in 2015 and continue to be the top choice for developers creating powerful apps across all device types and screen sizes. We can’t wait to see what’s to come in 2016!

Let’s take a look back at some of the highlights from 2015:

  • We just announced that the Appery.io platform has surpassed 300,000 developers. The growth of Appery.io is a testament to the company’s commitment to product development, performance and to its customers. Unlike its competitors, Appery.io appeals to both enterprise IT and “citizen developers” in the lines of business. This is further proof to the value of an agile cloud-based, end-to-end platform.
  • Last month, we announced our new Automatic App Update capability, which enables developers to update an application without having to resubmit it to app stores. Prior to this advancement, developers were required to wait up to two weeks for their updated apps to be approved and available on the app store, even longer if initially rejected. Now, after initial submission, updates are made automatically.
  • In July 2015, we announced integration with Ionic SDK and Appery.io. This enabled developers to build hybrid HTML5 mobile apps with the same user experience of a native application, accelerating time to market, and nearly eliminating the need to build expensive, fully native apps in the enterprise.
  • In June we acquired Verivo Software’s major assets further cemented Appery.io’s position as a leading app development platform for the enterprise with an end-to-end solution that is agile and meets the needs of both IT and the lines of business within the enterprise.

Next year promises to be an exciting time for enterprises looking to go mobile and it’s important for them to choose a platform that is backed by a large developer community. Our team is constantly looking ahead to where the industry is going and how we can best equip our customers to compete. Stay tuned for our continued updates.

Originally published on Appery.io blog