wiki:WikiStart

Timbre

El timbre es una aplicación para timbrar Se originó como conejillo de indias para explorar tecnologías desconocidas hasta ahora en Sofhouse, en particular

En el momento e escribir este documento, las rama de desarrollo de de los repositorios timbre-porto y timbre-android y timbre-go es la rama publico ie, git checkout publico

Intenciones de Arquitectura

La intención de arquitectura de este proyecto es utilizar la herramienta más adecuada para el desarrollo en cada plataforma. En efecto no busca ser un desarrollo cross-platform, sino una infraestructura para facilitar el desarrollo en múltiples plataformas, cada desarrollo acudiendo a las mejores herramientas, las más adecuadas para ese entorno.

Para mensajes asíncronos entre servidor y cliente se utiliza Firebase Cloud Messaging, enviando ProtoBuffers. la especificación de cuándo se manda qué, no existe, pero todo lo que se manda es un Protobuf definido en timbre-proto. Si se pregunta esto dónde lo leo, diríjase a timbre-go/utils/fcm.go y luego a timbre-android/.../messaging/FCMService.java

Timbre Proto

En el repositorio bitbucket.com/sofhouse/timbre-proto se encuentran las definiciones de los protocolos de comunicación. adicionalmente existen scripts para generar código para java, golang, objetive-c y hay trabajo en curso para generar código en typescript con grpc-web, https://github.com/improbable-eng/grpc-web

Este repositorio sirve como la especificación sobre la cual se basarán todas las aplicaciones del sistema.

Timbre Android

El proyecto de bitbucket.org/android utiliza las librerías en Java para Android, y androide studio como IDE

git checkout publico
git submodule init
pushd timbre-proto 
git pull timbre-proto
git checkout publico
popd

El sistema Gradle https://gradle.org se encarga de instalar dependencias y compilar la especificación en protocol buffers para usar los endpoints desde la aplicación.

El Keystore para la publicación se encuentra en el iMac de David.

/Users/jborda/Dev/timbre/net.sofhouse.timbre.jks

ambas claves : Timbre2017
kekey alias: timbre-publico-25

Esta información le será util cuando esté generando APKs firmados para subir una nueva verisón a la playstore.

Despliegue

Consulte google para los pasos necesarios para genera apks firmados y subir versiones nuevas a la playstore. Esto es estándar para Android Studio.

Timbre Go

Es un servidor que implementa los servicios GRPC definidos en timbre-proto. Si no sabe en qué entorno trabajar este código, bien pueda instale VSStudio Code con las herramientas para GO. funcionan bastante bien.

El servidor utiliza gorm https://github.com/jinzhu/gorm para definición de modelos.

Aún no hay una propuesta de esquema para manejo de migraciones que alteren los modelos existentes destructivamente. El comando go run main.go migrate únicamente migra aditivamente, no destrye ni altera columnas, tablas o incides.

El código está bastante probado unit-testeado (mostly happy executions). Utiliza sqlite3 y/o postges según la configuración.

El readme del proyecto explica lo necesario para ponerlo a andar, probar, compilar.

A diferencia del proyecto Android, cambios a la especificación de timbre-proto no producen una generación de código al hacer build. Es necesario que en el momento de cambiar los protos, se ejecute en ese repositorio compile-go.sh para generar el código en go, y luego si darle commit.

La configuración de llaves para envío de mensajes FCM asíncronos a la aplicación está quemada en el módulo encargado y sería adecuado sacarlo al archivo de configuración.

Despliegue

Existe un despliegue en tiendas playstore en la cuenta de sofhouse24 Esas apliaciones le pegan al servicio alojado en las oficinas de sofhouse con el subdominio timbre.sohfouse.net