Video Summary and Transcription
El masterclass presenta una nueva pila de Oracle para construir aplicaciones React Native, con un enfoque en el desarrollo JSON y NoSQL contra la base de datos de Oracle. La pila incluye un servidor de embajada, Docker, Node.js y un cliente SQL. Las nuevas características en la base de datos incluyen gráficos de propiedades, dualidad relacional JSON, procedimientos almacenados de JavaScript y búsqueda vectorial de IA. El masterclass cubre la instalación, configuración del servidor, pruebas locales y desarrollo frontend. También se mencionan oportunidades para cambiar de base de datos y utilizar código en la nube y datos espaciales.
1. Introducción al Masterclass
El masterclass de hoy trata sobre la construcción de una aplicación React Native con una nueva pila de Oracle. La versión 23AI permite el desarrollo de JSON o NoSQL en la base de datos completa de Oracle. El laboratorio tiene como objetivo crear una aplicación de historia a pie que muestra el punto de interés más cercano basado en la ubicación del usuario. La aplicación se ejecuta localmente utilizando el servidor parse y la base de datos Oracle Docker gratuita.
¡Empecemos! Hoy, este masterclass trata sobre la construcción de una aplicación React Native con una nueva pila de Oracle similar a Mern o Meme u otras pilas, otros desarrollos de pila completa que existen hoy en día. Esto es nuevo con Oracle, en realidad. La versión 23AI, es una versión significativa. Y ahora puedes desarrollar JSON o NoSQL en la base de datos Oracle completa.
Permítanme presentarme. Soy Doug Drexel. He trabajado con Oracle durante la mayor parte de mi career. Bueno, trabajé con BEA, que fue adquirido por Oracle. Últimamente, he estado involucrado como evangelista de desarrolladores tratando de aprovechar algunas de las nuevas características de la database y exponerlas, nuevas características que las personas pueden no conocer y exponer a los desarrolladores.
Vamos a ver. Saben, antes de llegar aquí, solo quiero hacer esto. Voy a asumir esto. Miren este repositorio de GitHub, la mayoría de las cosas que van a necesitar para completar este laboratorio, pueden simplemente copiar y pegar desde aquí. ¿De acuerdo? Así que tengan en cuenta eso. Recomiendo que todos, si no tienen la database en ejecución, simplemente la inicien ahora para que podamos descargarla, y estará lista para cuando lleguemos allí.
Entonces sí, al final de este laboratorio, esperemos tener una aplicación de historia a pie en ejecución en la pila completa. Es una aplicación React Native. Básicamente, lo que hace es, basado en tu ubicación, muestra el punto de interés más cercano y te hablará de él. Yo vivo fuera de Nueva York, así que esto está sesgado hacia Nueva York, pero esto es lo que veo al salir de Penn Station. La atracción más cercana habría sido el Empire State Building. Hacemos todo esto localmente. Lo ejecutamos utilizando el servidor parse y la nueva base de datos gratuita de Oracle Docker. Así que database, local y gratuita, 23.8i, ¿verdad? Sí, es fácil de iniciar. Lo mostraremos. Es una base de datos JSON autónoma. En realidad, podemos tener muchos tipos de bases de datos. Y puedo cambiar fácilmente entre el desarrollo local y el uso de mi pila basada en la nube. Así que el servidor parse, para aquellos que no lo conocen, es una aplicación Node.js express.
2. Introducción a la Pila de Desarrollo
El masterclass presenta un servidor embass, un backend móvil como servicio, que proporciona APIs para el desarrollo de aplicaciones móviles y web. La pila incluye Docker, Node.js y un cliente SQL para acceder a la instancia de la base de datos local. Oracle ofrece una imagen de base de datos gratuita y completa con una nueva licencia de uso de Oracle. El contenedor local y el acceso gratuito facilitan el inicio. El masterclass también cubre el concepto de una base de datos de contenedores con múltiples instancias de base de datos y administradores.
Es lo que llaman un servidor embass, un backend móvil como servicio. Proporciona un conjunto completo de APIs para desarrollar aplicaciones móviles y web, dependiendo de la pila de desarrollo de frontend que estés utilizando. Y luego el frontend obviamente será la aplicación móvil nativa de React.
¿Qué vas a necesitar? Hay muchas cosas. Docker, obviamente. Node.js, estoy usando para este laboratorio la versión 20.12, que es la versión recomendada para parse 7.0.0. Un entorno de desarrollo de iOS o Android. Yo uso iOS, así que realmente no podemos ayudar en el lado de Android.
El cliente SQL es como una shell de mongo, ¿verdad? Es un cliente que puedes usar para acceder a tu instancia de base de datos local. Y luego hay vidas de cliente, vidas de cliente instantáneas que se utilizan en tiempo de ejecución. Así que sí, esto es nuevo. Y esto es parte de lo que hace que esta pila sea nueva, es que Oracle tiene una imagen de base de datos gratuita y completa. Personalmente he escrito contra una cola. He ejecutado SQL contra ella. Es todo, ¿de acuerdo? Y esto se debe a esta nueva licencia de uso de Oracle, que también es nueva en Oracle, donde podemos decir, sí, puedes usar esto para tu desarrollo y es gratuito.
Así que hay dos cosas nuevas, ¿verdad? El contenedor local y es gratuito. Así que debería ser bastante simple comenzar, ¿verdad? Básicamente, descárgalo. Y nuevamente, para cualquier persona que llegó más tarde, consulta estos ejemplos de Oracle, partes del adaptador Oracle para copiar y pegar. Así que volvamos a esto. OK, entraré en esto más adelante. Pero cuando te conectas a la imagen assist DBA. Así que ahora en Oracle, tienen esta idea de que es una base de datos de contenedores. Si alguien puede ayudar con el chat, sería genial. Veamos qué dice este, pero no lo voy a hacer. Oh, genial. Gracias. Sí, exactamente. Sí, entonces, OK, esto es como una base de datos de contenedores. Puedes tener muchas bases de datos de muchos tipos, ¿verdad? Así que cuando inicias sesión como assist DBA, eres el administrador de toda la base de datos.
3. Instancias de la Base de Datos y Nuevas Funcionalidades
Se pueden crear múltiples instancias de la base de datos dentro de la base de datos, cada una con su propio administrador. La base de datos contenedor permite administrar múltiples instancias como una sola y permite generar informes en todas las PDB. Las nuevas funcionalidades incluyen grafos de propiedades para agrupar comunidades basadas en afinidades conjuntas y la dualidad relacional JSON para consultas simplificadas. Además, se encuentran disponibles los procedimientos almacenados en JavaScript y la búsqueda vectorial de IA.
Dentro de la base de datos, puede haber múltiples instancias de la base de datos que cada una tiene su propio administrador. Entonces, si estás en un entorno nativo de cloud y tienes, por ejemplo, el servicio de pedidos y el servicio de clientes, cada uno de ellos puede convertirse en PDB en la base de datos administrada por ese equipo de servicio, ¿verdad? Entonces, la razón por la que estamos haciendo esto es porque vamos a ejecutar un script en la base de datos después de que la instales. Y lo que hace este script es básicamente habilitar el desarrollo JSON en esta instancia de la base de datos llamada PDB1 gratuita, que es la predeterminada, ¿verdad? Lo entiendes. Cada vez que inicias este contenedor, obtienes esta instancia de la base de datos con PDB admin como el administrador predeterminado de esa instancia de la base de datos. También puedes copiar y pegar esto en un archivo soda, como lo llamo, y simplemente ejecutar el comando como un script, ¿verdad? Ahora, he iniciado todo esto previamente. Así que si ejecuto docker ps.tray, puedes ver que está en funcionamiento y saludable. Esa parte de la pila ya está lista. Y eso es todo lo que debes hacer para poner en marcha la parte de la base de datos de la pila. Muy bien, esto es de lo que estaba hablando, sobre la base de datos contenedor, ¿verdad? Entonces, ya sabes, cada PDB independiente podría ser análogo a un contexto delimitado de servicios. A nivel de la base de datos contenedor, y esto es interesante y útil, creo, puedes administrar muchas como una sola, puedes parchearlas todas, puedes actualizarlas todas. Lo otro interesante que me gusta aquí es que puedes generar informes en todas las PDB de tu instancia. Entonces, si estás capturando métricas y quieres verlas a nivel global, puedes hacerlo de manera muy sencilla. Muy bien, como estuve hablando mucho sobre las nuevas funcionalidades, y realmente creo que es cierto, esto ha estado en desarrollo durante mucho tiempo. Hay un montón de nuevas funcionalidades que puedes usar e innovar. Algunas de las funcionalidades que estoy utilizando o utilizaré son los grafos de propiedades. Lo que estoy haciendo con la funcionalidad de grafos de propiedades, y esto es interesante, especialmente si estás involucrado con bases de datos Oracle existentes que pueden tener esquemas enormes. Puedes recopilar un conjunto de ajuste de SQL, que básicamente captura cada consulta que se ejecuta en la base de datos. Y puedes tomar esa información y convertirla en un grafo ponderado basado en la actividad de unión. Y puedes asignar afinidades, y eso se convierte en el grafo. Luego, ejecuto la detección de comunidades en él utilizando el algoritmo del mapa de información. Y eso encuentra comunidades o grupos en la base de datos existente basados en afinidades conjuntas, lo cual puede ser útil para combinar esas comunidades en una sola PDB, que luego se convierte en la base de datos para un servicio. La dualidad relacional JSON, la estoy utilizando, es bastante útil. Lo que hace es permitirte escribir vistas JSON, vistas de lectura y escritura sobre el esquema SQL existente. Así que eso es realmente útil, ¿verdad? Porque puedes tomar estos servicios y en lugar de tener que consultarlos todos y fusionar todo, simplemente puedes escribir esta vista encima de ellos y se ejecutará automáticamente. Por ejemplo, esto es en lo que estoy trabajando, ¿verdad? Estoy mirando el prototipo de una base de datos universitaria con cursos y horarios y cosas así, ¿verdad? Extrayendo todos los diferentes servicios de un esquema SQL existente y dividiéndolos en sus servicios específicos. Y luego, para recopilar datos de estos diferentes servicios, simplemente escribo estas vistas. Vale, creo que me he extendido un poco en esto. Hablaré sobre los procedimientos almacenados en Java, ahora puedes escribir procedimientos almacenados en JavaScript en la base de datos. Si quieres combinar algunas cosas para reducir las rutas, eso está disponible.
4. Búsqueda de Vectores de IA y Actualizaciones de Parse
Las bibliotecas NodeDB y Node Oracle DB proporcionan búsqueda de vectores de IA. Las actualizaciones en la versión 7.1 de Parse incluyen mejoras para construir un adaptador de almacenamiento de forma dinámica. La rama de Oracle está esperando el lanzamiento completo. La compilación de GitHub ejecuta el conjunto de pruebas del servidor Parse con algunas fallas restantes.
Y obviamente, la búsqueda de vectores de IA, todos la quieren. Esta pila la tiene si utilizas las bibliotecas NodeDB, Node Oracle DB. Vuelve aquí. Eso es todo. Así que espero que tengamos suficiente tiempo para descargar la imagen de Docker. He estado trabajando con el equipo de Parse. Y esta versión funciona con Parse 7.0.0, ¿verdad? Y 7.1. Aquí, déjame mostrarte esto. Esto es lo principal. Esto es de código abierto público. Aquí es donde se encuentra la compilación actual, ¿verdad? Así que tuve que agregar, o trabajé con el equipo de Parse y ellos ayudaron, y hicimos algunas cosas como antes de esto, Parse tenía dos adaptadores de base de datos, Mongo y Postgres, ¿verdad? Y en realidad eran parte del servidor en sí. Entonces, lo que hice cuando trabajé con el equipo de Parse fue desarrollar, para desarrollar o mejorar la forma en que puedes construir un adaptador de almacenamiento para que se cargue de forma dinámica. Y hay algunos cambios que se están realizando en Parse que estarán disponibles en la versión 7.1. Entonces, si miras esta rama aquí, Oracle, esta está esperando el lanzamiento completo. Otra cosa interesante aquí es que tengo una compilación de GitHub. Es una compilación completa. Es mucho de lo que estarás haciendo aquí. En realidad, es solo una máquina Ubuntu que se ejecuta en GitHub. Esto ejecuta el conjunto de pruebas del servidor Parse y todavía hay algunas fallas. Vamos a echar un vistazo, pero puedes ver que hay algunas cosas aquí, ¿verdad? Así que eso es lo que estábamos haciendo, revisar el servidor Parse, instalar SQL, instalar el cliente, probar, ejecutar la imagen, ¿verdad? Así que echemos un vistazo rápido aquí a la ejecución de las pruebas. Vamos, amigo. Adelante. Bien. No está. Permíteme actualizar esto. No sé por qué no está funcionando. Lo ejecuté hace un tiempo. Pero de todos modos, se ejecutan 3100 pruebas. Creo que hay 16 fallas que todavía tengo que revisar.
5. Carga Dinámica del Adaptador y Oracle Node DB
Para ejecutar el adaptador de forma dinámica desde la línea de comandos, configura una función de exclusión de prueba e instala la fuente del adaptador de Oracle en el servidor principal de Parse junto con Mongo y Postgres. Las bibliotecas de Oracle Node DB tienen una nueva función para la búsqueda de vectores utilizando un tipo de datos vectorial. Consulta el artículo en Medium para obtener más información.
Ahí lo tienes. Entonces, si alguna vez quieres ver eso, o como haces GitHub Actions, puedes simplemente ver ci.yaml. De acuerdo. Volvamos a esto.
Entonces, oh, ¿y cuáles son las características que hemos incluido aquí? Hablemos de eso. Una es ejecutar el adaptador e identificar el módulo del adaptador desde la línea de comandos y cargarlo dinámicamente. Y la otra era configurar una función de exclusión de prueba que permitiera a cada adaptador específico decidir qué pruebas en el conjunto de pruebas se deben excluir. Volvamos a las diapositivas.
De acuerdo. Ahí lo tienes. Por eso, en este momento tienes que hacer un poco de trabajo para poner el origen del adaptador de Oracle en el servidor principal de Parse en el mismo directorio que Mongo y Postgres. Correcto. Y luego ejecutas un npm install. Estas son las bibliotecas de Oracle Node DB. Esto tiene una nueva función con la que aún no he podido jugar. Pero admite la búsqueda de vectores. Echemos un vistazo rápido a eso. Ahí lo tienes. Esto es. Estas son las bibliotecas de Oracle Node que uso para construir el adaptador, ¿verdad? Y son completas. Y acaban de lanzar un tipo de datos vector data, con el que aún no he tenido la oportunidad de jugar o experimentar. Pero quiero que sepas que existe y está listo para usar. Veamos. Veamos si puedo encontrarlo. Lo mostraré. Tenía un. Había un enlace si alguien lo quiere o está interesado. Alguien escribió un artículo en Medium. Sí, me gusta este. Estuvo bien.
6. Instalación y Descripción General de Parse Server
Para instalar el adaptador de archivos de Parse que utiliza almacenamiento local, puedes cargar archivos grandes. Construye el servidor con NPMCI. Parse server es un servidor Express Node.js que funciona con 23AI y admite varios SDK.
Sí, aprovecha la oportunidad si estás interesado en eso. Este es un buen artículo. Habla sobre las características. De todos modos, volvamos a la presentación.
De acuerdo, luego necesitas instalar el adaptador de archivos, el adaptador de archivos de Parse, que utiliza almacenamiento local. Y esto es un requisito si usas un adaptador de database como un verdadero adaptador. Por eso estamos instalando esto. Crea almacenamiento local en el sistema de archivos. Y puedes usarlo para cargar video y audio y cualquier otro archivo grande que consideres necesario.
Y luego simplemente construyes el servidor con NPMCI. Correcto. Haciendo suposiciones aquí. Pero creo que la mayoría de las personas aquí deberían conocer Node. Espero. De acuerdo. Así que volvamos. Tengo uno funcionando aquí. Lo inicié en esta ventana. Echemos un vistazo a esto primero. Echemos un vistazo a config.json. De acuerdo, lo construimos. Veamos cuál es el siguiente.
Oh, lo tengo. Muy bien. Lo construimos. Hablemos de Parse Server. Para aquellos que no lo sepan, es un servidor Express Node.js. Y funciona con 23AI. Y, ya sabes, cubrí la información sobre dónde estamos y la colaboración con parse. Una cosa que me gusta es que admite muchos SDK.
7. Desarrollo Front-end y Configuración del Servidor
Puedes desarrollar como hoy en día con React Native, JavaScript, FQL, Flutter, y tener una variedad de opciones en el front-end. Parse tiene un amplio conjunto de APIs, incluyendo geolocalización, notificaciones push y código en la nube. Antes de iniciar el servidor, necesitas configurar un archivo de configuración, especificando la ubicación del módulo, la cadena de conexión y el prefijo de colección. Monta GraphQL y PlayGraph, establece un punto de conexión GraphQL, especifica la ubicación del adaptador de archivos y ejecuta el servidor. Asegúrate de que la versión de InstaClient coincida con la utilizada en el pipeline de Ubuntu, o establece una variable de entorno para versiones anteriores.
Correcto. Puedes desarrollar como hoy en día con React Native. Tengo un amigo, Paul, que hizo una aplicación de unity. He trabajado con JavaScript, FQL, Flutter. Así que tienes muchas opciones en el front-end. Y lo tiene. Tiene un conjunto realmente amplio de APIs. Listas para usar y bastante buenas. Vamos aquí, puedes ver que me gusta ver la de JavaScript. Pero puedes ver, ya sabes, es un conjunto bastante completo. He hecho. No las he usado todas. Imagino que el conjunto de pruebas las está utilizando todas y funcionan, pero he usado algunas cosas de geolocalización. He usado algunas cosas de notificaciones push. He usado código en la nube, así que funciona bastante bien. Ahora, volvamos a esta diapositiva.
De acuerdo, antes de iniciar el servidor, tienes que configurar un archivo de configuración, ¿verdad? Puedes simplemente copiar y pegar esto. Puedes ver aquí donde lo defines. La forma en que Parse solía almacenar es simplemente especificando una URI de base de datos porque Mongo y Postgres eran parte del servidor, pero ahora es un adaptador. Así que especificas la ubicación del módulo y la cadena de conexión, ¿verdad? Este prefijo de colección es útil. Si tienes varios usuarios trabajando en tu instancia de base de datos, puedes obtener un Frank o Paul o Gina o como quieras para distinguir a quién pertenecen las tablas. Estamos montando GraphQL. Estamos montando el PlayGraph. Estamos estableciendo un punto de conexión GraphQL. Estamos especificando dónde se encuentra el adaptador de archivos. Y luego ejecutas el servidor. En el pipeline de Ubuntu que mostré en GitHub, InstaClient está en la versión 23.4, que es 23 AI, así que tengo una coincidencia entre clientes, ¿verdad? Pero gran parte de mi desarrollo local es en una Mac, y eso solo está en la versión 19.16, el Instant Client. Así que la suposición cuando usas esto eventualmente es que es de 23 a 24. Es de 23 a 23. Pero si tienes una versión anterior de InstaClient, simplemente exporta esta variable de entorno antes de iniciar el servidor, ¿verdad? Y luego una vez que inicies el servidor, básicamente no hay mucho más.
8. Probando el Stack Local y Acceso a la Base de Datos
Se conectó al grupo de conexiones, instancia de base de datos, y ahora tenemos el servidor Parse, GraphQL y PlayGround localmente. Lo probamos usando la API REST, creando una colección e ingresando datos. Recibimos un ID de objeto. Accede a la base de datos enchufable como administrador de PDB usando SQL CL. Tenemos comandos para SOTA para trabajar con la nueva colección de puntuaciones del juego.
¡Hola! Se conectó al grupo de conexiones, el grupo de conexiones se conectó a la instancia de database, y ahora tenemos estos servicios ofrecidos localmente, ¿verdad? El servidor Parse, el GraphQL, y el PlayGround, que mostraré en un momento. Así que eso funcionó bien.
De acuerdo. Muy bien, asegurémonos de que funcione, ¿de acuerdo? Vamos a usar la API REST, así que parse, como parsea el Hola Mundo, es algo que llaman puntuación del juego, ¿verdad? Así que simplemente ejecutémoslo y esperemos que esto no sea anticlimático. De acuerdo, en este comando, puedes ver los encabezados. ¿De acuerdo? Estamos enviando el ID de aplicación que especificamos en la configuración. Estamos enviando la información y estamos golpeando el punto final de parse. Esto realmente creará la colección y pegará un documento en ella. Y ahí vamos. ¡Hurra! Logramos el primer paso. En realidad, ejecutamos el stack e ingresamos data usando la API REST. Y eso realmente... no fue demasiado difícil porque no quiero maldecirme a mí mismo.
De acuerdo. Básicamente, lo que obtienes de vuelta es un ID de objeto, ¿de acuerdo? Ahora, recuerda, anteriormente estaba hablando sobre la database de contenedor y PD admin versus sysdba, ¿verdad? Entonces, nuestra database de partición o nuestra database enchufable, es la palabra correcta, tiene el usuario PDB admin. Así que vamos a iniciar sesión como PDB admin y tener acceso a la database enchufable real en lugar de la database de contenedor, que hicimos antes con sysdba. Vamos aquí. Y por eso necesitas un SQL CL, ¿de acuerdo? Para hacer estas cosas localmente. Así que simplemente conectémonos. Y estamos dentro. Así que esto... Ahora tenemos comandos para SOTA. Estos son como los comandos JSON que usarías. Así que si hago SOTA list, verás esta nueva colección de puntuaciones del juego. Estas colecciones con prefijo de guión bajo son internas del servidor Parse. Colecciones. Solo para que lo sepas. Echemos un vistazo. SOTA.
9. Explorando el Panel de Control de Parse y el Flujo de Trabajo Local
Puntuación del juego. Echa un vistazo a ella por clave. Instala el panel de control de Parse y trabaja localmente. Copia la URL, ve a Chrome y accede a ella. No se puede conectar al servidor. Tal vez volvamos a ello.
Sí. Puntuación del juego. Así que, obvio. Y echemos un vistazo a ello. Por clave. Y ahí lo tienes. Y para finalizar el stack local. Veamos qué hay fuera del navegador.
Esto es genial. En realidad, es bastante útil. Hagámoslo rápido también. Así que puedes instalar el panel de control de Parse y trabajar en esto localmente también. Y vamos a hacer lo mismo. Puedes instalar el panel de control de Parse y trabajar en esto localmente también. Y ya lo he instalado. Le damos el ID de aplicación. Le indicamos los puntos finales de RackQL y Parse. Así que vamos a echar un vistazo a eso. Muy bien. Ahí vamos. Así que, copiemos la URL. Vamos a Chrome y accedamos a ella. Y ahí vamos.
Ahora verás, ya sabes, a partir del kidk.json anterior, lo llamé ID de aplicación. Y puedes entrar allí y echar un vistazo. No se puede conectar al servidor. De todos modos, funcionó ayer. Muy bien. No me voy a detener en esto. Tal vez volvamos a ello a medida que avanzamos.
10. Explorando las Funciones del Panel de Control de Parse
No sé por qué eso no está funcionando. Estaba usando Firefox. Permíteme intentarlo. Hay un navegador con roles, usuarios y una colección de puntuaciones de juegos. Puedes escribir webhooks para microservicios de Spring Boot y ampliar tu API de Parse. La consola de API es útil para revisar las APIs y realizar pruebas.
No sé por qué eso no está funcionando. Estaba usando Firefox. Permíteme intentarlo. Veamos qué pasó con Firefox. Sí. Interesante. De acuerdo. Así que eso funcionó con Firefox.
Y como puedes ver, aquí dentro. Hay, ya sabes, un navegador, ¿verdad? Tenemos roles, usuarios y aquí está la colección de puntuaciones de juegos. Puedes hacer todo tipo de cosas aquí y revisarlo.
Hay, hay un webhook. Puedes escribir webhooks aquí. En realidad, esto es bastante genial. Tenemos una plataforma Spring OBS que se ejecuta en Kubernetes y ofrece servicios de Spring Boot. Y utilizando esta interfaz, puedes configurar webhooks para los microservicios de Spring Boot y ofrecerlos casi de inmediato o ampliar tu API de Parse casi de inmediato. Trabajos, registros. Aquí están las notificaciones push. He escrito algunas cosas sobre esto. De hecho, he podido utilizar el servicio de notificación push de Apple desde aquí. Lo envié desde Cloud Code. Y veamos el núcleo, ¿de acuerdo?
Pero otra función aquí que nos gusta o que me gusta es la consola de API. Esto fue muy útil para ayudarme a revisar las APIs y ver qué funcionaba bien. Puedes ver aquí está la consola de GraphQL. No soy un experto en GraphQL, pero descubrí algunas cosas simples. ¿De acuerdo? Así que desde aquí, puedes probar cosas, ¿verdad? Debes proporcionarle estas cabeceras. Pero este es un ejemplo de creación de una clase o colección de cursos. ¿De acuerdo?
11. Ejecutando la Pila Completa e Instalación en iOS
Si ejecuto eso y creo una colección de cursos, puedes ver la nueva colección llamada curso y una nueva entrada. Ahora tienes la pila completa ejecutándose con el navegador. Vamos a clonar el repositorio, instalarlo y hacer un pod install en el directorio de iOS. Vamos a echarle un vistazo. Esto también lleva su tiempo, como la compilación.
Y si ejecuto eso. Sabes, verificamos que esta mutación realmente funcionó. Y luego, si quiero crear una colección de cursos que ya existe, simplemente ejecuto esto. Y listo. Ahora, si volvemos al navegador y actualizamos nuestra página, puedes ver que tenemos una nueva colección llamada curso y una nueva entrada. Así que está bien. Me gusta. Es útil para verificar cosas.
Volvamos atrás. Ahora tienes la pila completa ejecutándose con el navegador. Volvamos atrás. ¿Dónde estamos aquí? OK. Muy bien. Supongo que estamos listos para hacer esta parte. Para ser sincero, no soy un experto en esto. Y tuve algunos problemas ayer cuando estaba haciendo pod install. Pero espero que eso no suceda hoy.
Básicamente, vamos a clonar el repositorio. Ya he hecho esto. Correcto. Clonar el repositorio. Y lo instalé. Y tuve un problema con MPX pod install. Pero me moví a mi directorio de iOS, hice un pod install y eso pareció funcionar. ¿Y ahora qué sigue? OK. Vamos a echarle un vistazo a eso. Y esto también lleva su tiempo, como la compilación.
12. Explorando Xcode y Ejecutando el Simulador
Utilizo Xcode. Ahí está nuestra colección de cursos y la base de datos creada a través del panel de control. He podido ejecutar esta pila local y enviar notificaciones push a través de APNS. Esto es bastante genial. Esta es nuestra historia de visitas. Ejecuté npm install. Vamos a iniciar el simulador. Ejecutaremos un script para crear los datos y encontrar todos los lugares de interés dentro de dos kilómetros de la ubicación actual del teléfono.
Utilizo Xcode. Creo que estoy en la versión 15-algo. Oh, ¿qué está aquí a la derecha? Asegurémonos. Ahí está nuestra colección de cursos y la database creada a través del panel de control. En ocasiones, he podido ejecutar esta pila local y enviar notificaciones push a través de APNS. Esto es bastante genial, en mi opinión. Muy bien. Echemos un vistazo a esto. OK. Aquí vamos. Esta es nuestra historia de visitas. Ejecuté npm install. Voy a iniciar un simulador. Creo que esto es. Ahí vamos. Ponlo por ahí. Espera un momento. Oh, ahí está. Solo voy a minimizar esta ventana. Ponlo aquí. Vamos a iniciar el simulador. Muy bien.
Entonces esto es... Realmente, es algo simple. Solo tenemos algunos lugares de interés. Hay un script. Ejecutaremos el script para crear los data. Luego, básicamente, tomaremos la ubicación GPS y la ejecutaremos en esta tabla para encontrar todos los lugares de... Ejecutarlo en esta colección para encontrar todos los lugares de interés que están dentro de dos kilómetros de la ubicación actual del teléfono. Muy bien.
13. Ejecutando el Simulador y Poblando la Base de Datos
Así que vamos aquí. Verás... Es el ID de la aplicación. Todo esto debería funcionar sin problemas. Y poblamos la base de datos. Puedes ver que hay algunos errores porque seguimos intentando recrear la colección cada vez. Echemos un vistazo. Así que eso se cargó e ingresó. Lo siguiente es mostrarte los componentes de Bloque en el historial.
Así que eso apareció súper. Así que vamos aquí. Verás... Y así es como está configurado cuando descargas el repositorio, ¿verdad? Es el ID de la aplicación. Todo esto debería funcionar sin problemas.
Así que hagamos... Vamos por aquí. Muy bien. Punto. Y poblamos la database. Hecho. Terminamos. Puedes ver aquí. Oh, hay algunos errores. Sé qué son estos errores, ¿verdad? Es porque seguimos intentando recrear la colección. Cada vez que queremos hacerlo. Así que está bien.
Ahora tenemos... Muy bien. Así que eso se ingresó. Vamos por aquí. Echemos un vistazo. Muy bien. Ahí vamos. Muy bien. Así que eso se cargó e ingresó. Entonces... Lo siguiente es ejecutar esto. Lo siguiente es mostrarte... Aquí vamos. React latest. No, no ese. Vamos por aquí. Bloque en el historial.
14. Explorando Componentes y Ejecutando la Aplicación
Componentes. Ubicación. Esta es básicamente la página de inicio de esta aplicación simple. Y en el efecto de usuario, me conecto a la base de datos. Pero sea como sea, ahí es donde estoy. Así que vamos a ejecutarlo. mpx react-native-run-ios. Cuando haces npm install, esto básicamente instala una plantilla de React Native en tu proyecto. Y todas las dependencias que necesitas para ejecutar el proyecto. Así que apuntaremos al servidor. Y luego ejecutaremos nuestra aplicación. Esto inicia un servidor de metro. Es como la interfaz entre las diferentes plataformas.
Componentes. Ubicación. Esta es básicamente la página de inicio de esta aplicación simple. Y en el efecto de usuario, me conecto a la base de datos. O me conecto al servidor. Y luego, obtengo la ubicación. Pronto lo veremos. Pero nuevamente, esto debería funcionar de inmediato. Aún no he descubierto cómo no poner esto en el efecto de usuario y en el componente específico, y simplemente establecer esta información a nivel de la aplicación. Pero sea como sea, ahí es donde estoy.
De acuerdo. Así que vamos hacia abajo. Muy bien. Básicamente, nuevamente, estamos apuntando al lugar correcto. Así que vamos a ejecutarlo. mpx react-native-run-ios. Supongo... Así que para aquellos de ustedes que nunca han ejecutado realmente una aplicación React Native, permítanme volver aquí arriba. Cuando haces npm install, esto básicamente instala una plantilla de React Native en tu proyecto. Y todas las dependencias que necesitas para ejecutar el proyecto. Y para macOS, necesitas instalar esas dependencias haciendo este pod install. Así que eso es básicamente lo que está sucediendo aquí. Así que apuntaremos al servidor. Y luego ejecutaremos nuestra aplicación.
Y esto inicia un metro. Aquí, déjame hacerlo. Muy bien. Verás que esto iniciará un servidor de metro. Esto es como la parte de React Native del entorno de desarrollo de React Native. Es como la interfaz entre las diferentes plataformas. Así que estoy en iOS.
15. Ejecutando la Aplicación y Probando Localmente
Así que voy a presionar I. La aplicación se carga. Se conecta a la base de datos. La atracción más cercana a mí está a dos kilómetros de distancia. Vamos a darle una nueva ubicación. Javits Center. Pruébalo localmente. Pila completa de desarrollo de React Native. Ejecútalo contra tu base de datos en la nube descargando una billetera.
Así que voy a presionar I. Y vamos por aquí. Ahora se está construyendo. Así que he dicho bastante. Espera, menos mal que construí esto antes. La primera vez suele llevar un tiempo. Así que lo está instalando en mi simulador. Y está iniciando la aplicación. Y aquí vamos.
¿Hay alguna? No sé si esto está abierto. Me están llegando preguntas. Supongo que podrías simplemente escribirlas en el chat y las veré al final de esto. Pero aquí lo tienes. La aplicación se carga. Se conecta a la database. Ha descubierto que la atracción más cercana a mí está a dos kilómetros de distancia. Ahora, la forma en que lo configuré es aquí. Ubicación donde tenía una ubicación personalizada. Y esta ubicación personalizada es Penn Station en la ciudad de Nueva York. Pero vamos a darle una nueva ubicación. Veamos. Voy a inventar algo en lugar de buscar mis notas. Voy a poner 40.55 y voy a poner 73.49. Y veremos. Ahí lo tienes. Javits Center. Entonces, sí, puedes probarlo localmente, ejecutar diferentes cosas. Así que tienes una pila completa de desarrollo de React Native ejecutándose localmente. También es fácil ejecutarlo contra tu cloud database simplemente descargando una billetera. Y básicamente haces lo mismo.
16. Cambiar de Bases de Datos y Explorar Oportunidades
Cambiaré entre diferentes bases de datos. Instalar la pila utilizando S3 o el depósito de Oracle Cloud S3. Mostré cómo crear una aplicación móvil React Native utilizando Oracle free 23AI y parse server. Expliqué las características de 23AI para desarrolladores móviles y web. Mencioné oportunidades y otros casos de uso. Código en la nube para devoluciones de llamada de mensajes y datos espaciales. Gracias por aprender sobre la pila de Oracle.
Cambio entre diferentes bases de datos. Tenemos una pila que puedes instalar que utiliza S3, o un depósito S3 en el Cloud de Oracle. Así que, como muchas de estas imágenes, mi amigo Mark tiene un depósito S3 en el Cloud de Oracle y es de donde se extraen las cosas.
Veamos qué sigue. Muy bien. Entonces, ya sabes, espero haber mostrado lo fácil que es crear una aplicación móvil simple de React Native utilizando Oracle free 23AI y parse server, y ejecutarla contra la pila y hacer desarrollo local. Espero también haberte mostrado las diferentes características que 23AI ofrece a los desarrolladores móviles y web. Y hay algunas oportunidades aquí. Tengo un producto en mente que nunca podré construir en Oracle, pero tal vez algún día. Algunas otras cosas que he hecho con esto. Parse tiene una cosa llamada cloud code, de la que realmente no hablé en esta charla. Pero la he utilizado para recibir mensajes, para recibir una devolución de llamada en mensajes a una cola para datos espaciales, como por ejemplo, una aplicación de seguimiento de camiones. Podrías construir una cerca geográfica. Y si el camión saliera de esos límites, podrías recibir una alerta en tu teléfono basada en la devolución de llamada. Y bueno. Eso es todo. Muchas gracias por pasar tiempo conmigo y aprender sobre la pila de Oracle. Muy bien. Bueno, cualquier pregunta o comentario, por favor avísame. Solo envíamelo a Doug Drexel. Puedes encontrarme en LinkedIn. Y gracias de nuevo por pasar tiempo aquí. Que tengas un buen día. Adiós.
Comments