Fork me on GitHub
#clojure-italy
<
2019-05-30
>
reborg08:05:22

:spock-hand:

magomimmo13:05:29

ciao a tutti, so di essere pochissimo presente nei canali clojurians, quindi rischio forse di dire cose scontate o sbagliate. Vengo subito al dunque. Il prossimo settembre replicherò nella mia azienda (http://www.sinapsi.com) uno stage semestrale di iniziazione alla programmazione. Come sempre, sarà centrato su CLJ/CLJS). In passato avevo utilizzato le occasioni dello stage per resituire alla comunità una frazione millesimale di quanto ho ricevuto, scrivendo la serie di tutorial modern-cljs. Pensavo quindi di cogliere l'occasione per capire se riteniate che possa essere utile progettare e poi realizzare una serie simile a modern-cljs (ammesso che qualcuno di voi la conosca) ma questa volta dedicata interamente all'uso di CLJS con React-Native (e.g. re-natal). Ho avuto modo di studiare e testare direttamente react-native da JS e anche dart/flutter. Forse sono io malato. ma sono rimasto pietrificato dalla quantità di rumore sintattico (io lo chiamo cosi) che queste due tecnologie impongono ai programmatori. Quello che manca a re-natal e dintorni, per ovvi motivi di scarsità di risorse disponibili, è una seria documentazione. Mi piacerebbe quindi proporre agli autori di re-natal di realizzare un sito di documentazione paragonabili a quelli di react e flutter. So che è un'impresa impervia, visto che dietro di loro ci sono FB e Google, però anche solo riprendendo la loro documentazione e gli esempio, riscrivendoli in re-natal, penso che qualche cosa di utile si possa fare. Voi che ne dite, è una stupidata?

magomimmo13:05:54

react-native in js:

import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';

class Blink extends Component {

    componentDidMount(){
        setInterval(() => (
          this.setState(previousState => (
            { isShowingText: !previousState.isShowingText }
          ))
        ), 1000);
     }

    state = { isShowingText: true };

  render() {
    if (!this.state.isShowingText) {
      return null;
    }

    return (
      <Text>{this.props.text}</Text>
    );
  }
}

export default class BlinkApp extends Component {
  render() {
    return (
      <View>
        <Blink text='I love to blink' />
        <Blink text='Yes blinking is so great' />
        <Blink text='Why did they ever take this out of HTML' />
        <Blink text='Look at me look at me look at me' />
      </View>
    );
  }
}

magomimmo13:05:39

re-natal:

(ns noisy-code.components.impl.content
  (:require [reagent.core :as r]
            [native-base :refer [Content Text]]))

(defn- blinker [text]
  (r/with-let [showing? (r/atom true)
               toogle (js/setInterval #(swap! showing? not) 1000)]
    (if @showing?
      [:> Text text])
    (finally (js/clearInterval toogle))))

(defn content []
  [:> Content {:padder true}
   [blinker "I love to blink"]
   [blinker "Yes blinking is so great"]
   [blinker "Why did they ever take this out of HTML"]
   [blinker "Look at me look at me look at me"]])

manuel13:05:11

@magomimmo modern-cljs mi ha iniziato a ClojureScript. Ti leggerei sicuro anche stavolta. 🙂

magomimmo13:05:06

@manuel quindi pensi possa essere utilie? Il titolo potrebbe essere denoised-code o qualche cosa del genere...

manuel13:05:44

onestamente, devo ancora mettermi con re-natal, ma venendo da re-frame penso possa essere utile sì.

magomimmo13:05:34

se vieni da re-frame in pratica sei già pronto per re-natal

magomimmo13:05:15

la mia personale opinione è che re-natal, se usato bene, sia di gran lunga più produttivo non solo di react-native in JS, ma anche di flutter.

magomimmo13:05:48

vediamo se c'è qualche altro che ha suggerimenti da darmi

mdallastella13:05:53

@magomimmo sarebbe sicuramente interessante!

magomimmo14:05:52

ok. magari attendo qualche altro feed-back, ammesso che a qualcuno interessi...

helios14:05:05

Io ho avuto un po' di problemini circa 8-9 mesi fa con re-natal. Figwheel crashava e quasi non riuscivo a sviluppare

magomimmo15:05:53

@helios noi ci abbiamo sviluppato la App di http://linfa.io già con le vecchie versioni...con l'ultima 0.11.1 è molto stabile (ma io lo provo sempre e solo su linux/android - la mia collega su mac os x/ios)

helios15:05:40

Io facevo MacOS/android 🙂 magari quello? 🤷

magomimmo15:05:21

beh, la mia collega ha sempre sviluppato da mac osx sia su ios che android....proverò nei prossimo gionri con la versione 0.11.1 da mac osx con target ios e android e ti saprò dire

reborg19:05:51

domanda serale. Come posso specificare con spec una lista (a sep b sep c sep d) dove il pattern item-sep-item si puo’ ripetere da 1 ad n volte?

mdallastella19:05:50

Se non sbaglio spec accetta anche espressioni regolari

reborg19:05:30

ah beh giusto, mi stavo inalberando con s/cat

mdallastella19:05:58

Vecchia scuola Perl