Journée amélioration continue et innovation Frianbiz : S02 E03
Voici le petit compte rendu traditionnel avec des extraits des démos réalisées par les développeurs en quelques heures de code.
ARKit est une nouvelle API d’iOS 11 dédiée aux expériences en réalité augmentée (plus d’infos). Elle met à disposition un “motion-tracking” stable et rapide en se basant sur une estimation des surfaces, de la luminosité et des distances. Via un plugin, il est même utilisable dans Unity! Objectif d’Eric et Toad pour leur POC: Valider l’utilisation d’ARKit via Unity, avec une communication bidirectionnelle entre la scène 3D et Swift. (Stack : Unity 5.6.2.f1 / ARKit plugin / iOS 11 / Swift 3)
Voir la démo
Google a annoncé lors de la conférence Google I/O 2017 que Kotlin devenait le second langage de programmation supporté officiellement sur Android (Après Java). Pour découvrir la syntaxe de ce nouveau langage, un petit prototype artistiquement très convaincant ;) réalisé par Guillaume en quelques heures, le code est dispo ici. Voir la démo
L’objectif de Loïc était de tester les fonctionnalités “externes” à une application iOS : Widget, Touch 3D et Siri. Pour cela il a créé une application qui liste les tournages de long métrages qui ont eu lieu à Paris (api proposée sur data.gouv) Pour les Widgets, pas de problème, c’est très simple à mettre en place, tout est mis à disposition dans un ViewController, créer un widget qui liste les derniers tournages s’est avéré simple et rapide à développer. Pour le 3DTouch, le mode statique est également simple à mettre en place, l’action est directement disponible dans l’Appdelegate. Pour Siri en revanche, cela a été plus compliqué à mettre en place que prévu, l’API permet de s’inscrire à des catégories de phrases (des thèmes) et de s’inscrire à ces thèmes… malheureusement il aurait fallu quelques heures supplémentaires pour que la démo de Siri fonctionne… Next time!
Sujet trop ambitieux pour une journée de code, mais la première brique est là, le but était d’évaluer la complexité de générer des smartContract à partir d’une description “standard” d’états et de transitions dans un fichier JSON.
{
"contractName":"Campaign",
"init":"inprogress",
"transitions":[
{"name":"contribute", "from":"inprogress", "to":"success"},
{"name":"contribute", "from":"inprogress", "to":"fail"},
{"name":"canceled", "from":"inprogress", "to":"fail"}
]
}
Une fois la description de notre machine à état terminée, on lance notre petite lib Node en ligne de commande pour générer notre Smartcontract
run node solidityGenerator.js --generate --source [absolute path of JSONSource.json]
Et ça génère le squelette du SmartContract…
pragma solidity ^0.4.0;
contract Campaign {
enum States
{
inprogress,
success,
fail
}
// get the current campaign stage
function state() public constant returns (uint256)
{
return uint256(States.inprogress);
}
// if the current state does not equal the expected one, throw
modifier atStage(States _expectedState)
{
if (state() != uint256(_expectedState))
{
throw;
}
else
{
// continue with state changing operations
_;
}
}
// must be at state inprogress
function contribute() public atStage(States.inprogress)
{
//put your code here
}
//todo genere other transitions function ...
}
Bon c’est vraiment une base très light à ce stade (le code est dispo ici), il faut créer les functions “transitions” qui vont utiliser les “modifier” avec le bon état (comme contribute() qui n’est disponible que dans l’état “inprogress” dans mon exemple) mais ça mérite d’y passer encore un peu de temps et ça pourrait être utile dans un autre projet de modélisation de Blockchain, to be continued…
Ben et Joe ont créé une lib Laravel pour générer une administration en ligne de commande. Ils sont allés au bout du MVP en publiant la lib sur packagist. Voici un exemple de génération d’un CRUD (create, read, update, and delete) Cela génère la base de données, les vues, les routes, les contrôleurs, … en quelques lignes de commandes.
Le monde des pirates et des corsaires n’a pas de secret pour Lucas, alors quand il faut trouver une idée pour tester SpriteKit, ça donne çà : Un bateau qui protège son port en shootant les navires ennemis. Voir la démo