Build a Full Stack React Native App with Oracle 23ai

Rate this content
Bookmark

In this workshop, you will set up a local full-stack environment and create a React Native Mobile app that runs against that stack. 


Agenda:

- Install Oracle 23ai Docker container

- Build and run Parse Server with the new Oracle Storage Adapter 

- Build and run a Walking History React Native mobile app against the stack


Walking History is a React Native application that allows you to walk around New York City (or simulate that in a device emulator) and it tells you about the closest attraction or point of interest.



This workshop has been presented at React Summit 2024, check out the latest edition of this React Conference.

FAQ

The workshop focuses on building a React Native app using a new stack from Oracle, specifically the Oracle 23AI release.

The instructor is Doug Drexel, a developer evangelist who has worked with Oracle for most of his career.

Oracle 23AI is a significant release that allows for JSON or NoSQL development against the full Oracle database, which can be used locally or in the cloud.

You will need Docker, Node.js (recommended version 20.12 for Parse 7.0.0), an iOS or Android development environment, and a SQL client similar to Mongo shell.

Parse Server is a Node.js express app that acts as a mobile backend as a service, providing a full set of APIs for developing mobile and web apps.

Oracle 23AI offers features like property graphs, JSON relational duality, JavaScript stored procedures, and AI vector search.

The container database architecture allows multiple self-contained pluggable databases (PDBs) within a single container database, each managed independently while sharing the container's resources.

The walking history application shows the nearest points of interest based on the user's location and provides information about them.

You can easily switch between local and cloud-based development by pointing the stack at different database instances, either locally or in the cloud.

The SQL client is used to access and manage the local Oracle database instance, similar to how a Mongo shell is used.

Doug Drechsel
Doug Drechsel
37 min
11 Jun, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
The Workshop introduces a new stack from Oracle for building React Native apps, with a focus on JSON and NoSQL development against the Oracle database. The stack includes an embassy server, Docker, Node.js, and a SQL client. New features in the database include property graphs, JSON relational duality, JavaScript stored procedures, and AI vector search. The workshop covers installation, server configuration, local testing, and frontend development. Opportunities for switching databases and using cloud code and spatial data are also mentioned.

1. Introduction to the Workshop

Short description:

Today's workshop is about building a React Native app with a new stack from Oracle. The 23AI release allows development of JSON or NoSQL against the full Oracle database. The lab aims to create a walking history application that shows the nearest point of interest based on the user's location. The app runs locally using parse server and the free Oracle Docker database.

Let's get going. Today, this workshop's about building a React Native app with a new stack from Oracle similar to like Mern or Meme or other stacks, other full stack development that exists today. This is new with Oracle, actually. The 23AI release, it's a significant release. And now you can develop JSON or NoSQL against the Oracle database, and it is the full Oracle database.

Let me introduce myself. I'm Doug Drexel. I worked with Oracle for most of my career. Well, I worked with BEA, which was acquired by Oracle. Lately, I've been involved as a developer evangelist trying to take some of the new features from the database and expose them, new features that people may not be aware of and expose them to the developers.

Let's see. You know, before we get here, I just want to do this. I'm going to assume this. See this GitHub repo, most of the stuff that you're going to need to accomplish this lab, you can just cut and paste from here. Okay? So, be aware of that. I would recommend that everybody, if you don't have the database running, you should just start it now so we can download, and then it'll be done by the time we get there.

So yeah, at the end of this lab, hopefully we will have a walking history application running against the full stack. It's a React Native app. And basically what it does is, based on your location, it shows the nearest point of interest and will tell you about it. I live outside of New York, so this is New York biased, but this is me coming out of Penn Station. The closest attraction would have been the Empire State Building. Do this all locally. We run it using parse server and the new free Oracle Docker database. So database, local free, 23.8i, right? Yeah, it's easy to start. We'll show it. It's an autonomous JSON database. Really, we'll get into this, but it can be many types of databases. And I could easily take this stack and point it at a database instance in the cloud. So it's easy for me to flip back and forth between local development and moving against my cloud-based stack. So parse server, for those of you that don't know it, it's a Node.js express app.

2. Introduction to the Development Stack

Short description:

The workshop introduces an embass server, a mobile backend as a service, that provides APIs for mobile and web app development. The stack includes Docker, Node.js, and a SQL client for accessing the local database instance. Oracle offers a free, full-featured database image with a new Oracle for use license. The local container and free access make it easy to start. The workshop also covers the concept of a container database with multiple database instances and administrators.

It's what they call an embass server, mobile backend as a service. It provides a full set of APIs for developing mobile and web apps, depending on what front end development stack you're using. And then the front end is obviously going to be the React Native mobile application.

What are you going to need? There's a lot of stuff. Docker, obviously. Node.js, I am using for this lab 20.12, which is the recommended version for parse 7.0.0. An iOS or Android development environment. I do iOS, so we really can't help on the Android side.

SQL client is sort of like a mongo shell, right? It's a client you can use to access your local database instant. And then there are client lives, instant client lives that are used at runtime. So yeah, this is new. And this is part of what makes this stack new, is that Oracle does have a free, a full-featured database image. So I've personally written against a queue. I've run SQL against it. It's the whole thing, all right? And that's due to this new Oracle for use license, which is also new to Oracle, where we can just go and say, yeah, you can use this for your development, and it's free.

So there's two new things, right? The local container and it's free. So it should be pretty simple to start, right? Basically download it. And again, for anybody who came later, refer to this Oracle dash samples, Oracle adapter parts for cut and paste.

OK, so I'm going to get into this more later. But when you connect to the image assist DBA. So now in Oracle, they have this idea that it's a container database. If anybody can help with the chat, that would be cool. Let's see what this one says, but I'm not going to. Oh, super. Thank you. Yeah, exactly. Yeah, so, OK, so this is like a container database. You can have many databases of many types, right? So when you log in assist DBA, you are the administrator of the whole database. Within the database, there can be multiple database instances that each have their own administrator.

Watch more workshops on topic

How to Solve Real-World Problems with Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
How to Solve Real-World Problems with Remix
Featured Workshop
Michael Carter
Michael Carter
- Errors? How to render and log your server and client errorsa - When to return errors vs throwb - Setup logging service like Sentry, LogRocket, and Bugsnag- Forms? How to validate and handle multi-page formsa - Use zod to validate form data in your actionb - Step through multi-page forms without losing data- Stuck? How to patch bugs or missing features in Remix so you can move ona - Use patch-package to quickly fix your Remix installb - Show tool for managing multiple patches and cherry-pick open PRs- Users? How to handle multi-tenant apps with Prismaa - Determine tenant by host or by userb - Multiple database or single database/multiple schemasc - Ensures tenant data always separate from others
Relational Database Modeling for GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Relational Database Modeling for GraphQL
Top Content
WorkshopFree
Adron Hall
Adron Hall
In this workshop we'll dig deeper into data modeling. We'll start with a discussion about various database types and how they map to GraphQL. Once that groundwork is laid out, the focus will shift to specific types of databases and how to build data models that work best for GraphQL within various scenarios.
Table of contentsPart 1 - Hour 1      a. Relational Database Data Modeling      b. Comparing Relational and NoSQL Databases      c. GraphQL with the Database in mindPart 2 - Hour 2      a. Designing Relational Data Models      b. Relationship, Building MultijoinsTables      c. GraphQL & Relational Data Modeling Query Complexities
Prerequisites      a. Data modeling tool. The trainer will be using dbdiagram      b. Postgres, albeit no need to install this locally, as I'll be using a Postgres Dicker image, from Docker Hub for all examples      c. Hasura
Scaling up Your Database With ReadySet
Node Congress 2023Node Congress 2023
33 min
Scaling up Your Database With ReadySet
WorkshopFree
Aspen Smith
Nick Marino
2 authors
The database can be one of the hardest parts of a web app to scale. Many projects end up using ad-hoc caching systems that are complex, error-prone, and expensive to build. What if you could drop in a ready-built caching system to enable better throughput and latency with no code changes to your application?
Join developers Aspen Smith and Nick Marino to see how you can change one line of config in your app and use ReadySet to scale up your query performance by orders of magnitude today.
Building a Realtime App with Remix and Supabase
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Building a Realtime App with Remix and Supabase
Workshop
Jon Meyers
Jon Meyers
Supabase and Remix make building fullstack apps easy. In this workshop, we are going to learn how to use Supabase to implement authentication and authorization into a realtime Remix application. Join Jon Meyers as he steps through building this app from scratch and demonstrating how you can harness the power of relational databases!
Building a GraphQL-native serverless backend with Fauna
GraphQL Galaxy 2021GraphQL Galaxy 2021
143 min
Building a GraphQL-native serverless backend with Fauna
WorkshopFree
Rob Sutter
Shadid Haque
2 authors
Welcome to Fauna! This workshop helps GraphQL developers build performant applications with Fauna that scale to any size userbase. You start with the basics, using only the GraphQL playground in the Fauna dashboard, then build a complete full-stack application with Next.js, adding functionality as you go along.

In the first section, Getting started with Fauna, you learn how Fauna automatically creates queries, mutations, and other resources based on your GraphQL schema. You learn how to accomplish common tasks with GraphQL, how to use the Fauna Query Language (FQL) to perform more advanced tasks.

In the second section, Building with Fauna, you learn how Fauna automatically creates queries, mutations, and other resources based on your GraphQL schema. You learn how to accomplish common tasks with GraphQL, how to use the Fauna Query Language (FQL) to perform more advanced tasks.
Building GraphQL APIs With The Neo4j GraphQL Library
GraphQL Galaxy 2021GraphQL Galaxy 2021
175 min
Building GraphQL APIs With The Neo4j GraphQL Library
WorkshopFree
William Lyon
William Lyon
This workshop will explore how to build GraphQL APIs backed Neo4j, a native graph database. The Neo4j GraphQL Library allows developers to quickly design and implement fully functional GraphQL APIs without writing any resolvers. This workshop will show how to use the Neo4j GraphQL Library to build a Node.js GraphQL API, including adding custom logic and authorization rules.

Table of contents:
- Overview of GraphQL and building GraphQL APIs
- Building Node.js GraphQL APIs backed a native graph database using the Neo4j GraphQL Library
- Adding custom logic to our GraphQL API using the @cypher schema directive and custom resolvers
- Adding authentication and authorization rules to our GraphQL API

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Full-stack & typesafe React (+Native) apps with tRPC.io
React Advanced 2021React Advanced 2021
6 min
Full-stack & typesafe React (+Native) apps with tRPC.io
Top Content
Alex introduces tRPC, a toolkit for making end-to-end type-safe APIs easily, with auto-completion of API endpoints and inferred data from backend to frontend. tRPC works the same way in React Native and can be adopted incrementally. The example showcases backend communication with a database using queries and validators, with types inferred to the frontend and data retrieval done using Prisma ORM.
TypeScript and the Database: Who Owns the Types?
TypeScript Congress 2022TypeScript Congress 2022
27 min
TypeScript and the Database: Who Owns the Types?
Top Content
The Talk discusses the use of TypeScript and SQL together in software development. It explores different approaches, such as using an ORM like TypeORM or a schema generator like pg2ts. Query builders like connects JS and tools like PGTyped are also discussed. The benefits and trade-offs of using TypeScript and SQL are highlighted, emphasizing the importance of finding a middle ground approach.
I Would Never Use an ORM
JSNation 2023JSNation 2023
29 min
I Would Never Use an ORM
Top Content
Welcome to a talk on Object-Relational Mapping (ORM) and its potential pitfalls. The speaker discusses issues with modals and the MVC pattern, as well as the benefits of structuring code around system features instead. They introduce PlatformaticDB as a solution for easy backend development, showcasing its deployment and testing capabilities. The talk also covers integrating with Next.js, writing custom SQL queries, and the speaker's plans for future support and database compatibility.
Database Access on the Edge with Cloudflare Workers & Prisma
Node Congress 2022Node Congress 2022
31 min
Database Access on the Edge with Cloudflare Workers & Prisma
This Talk discusses database access on the edge with CloudFlare workers and the challenges of serverless platforms. It explores solutions for database access, including CloudFlare-specific solutions and using Prisma data proxy. The Prisma toolkit and demo are showcased, demonstrating how to convert an application to use a database. The process of setting up Prisma Data Platform and deploying the application to CloudFlare workers is explained. The Talk concludes with insights on database usage and the differences between serverless, CDN, and the Edge.
Bring AI-Based Search to Your Web App
JSNation 2023JSNation 2023
31 min
Bring AI-Based Search to Your Web App
The Talk discusses the use of machine learning in search engines, specifically focusing on semantic search and vector embeddings. It explores the integration of JavaScript and machine learning models, using Weaviate as an open-source vector database. The Talk demonstrates how to connect to Weaviate, query data, and perform machine learning queries. It also highlights the benefits of Weaviate, such as its superior developer experience and performance. Additionally, the Talk addresses customization options, data privacy concerns, and the varying effectiveness of different machine learning models.
Remix Persistence With DynamoDB
Remix Conf Europe 2022Remix Conf Europe 2022
41 min
Remix Persistence With DynamoDB
DynamoDB is a next-generation key-value database that is low-latency, scalable, and easy to use. It offers advantages such as local development options, a generous free tier, and fast performance. Common misconceptions about DynamoDB being expensive or hard to learn are debunked. The Talk covers topics like basic modeling, separating concerns, working with DynamoDB in Remix, and building a DynamoDB client. Overall, DynamoDB is a powerful database that integrates well with Remix and provides efficient data access patterns.