
bene ciao a tutti sono molto contento di esserlo
qui oggi e questo è ciò che darò
per parlare di movimento del nastro
e così il mio nome è una follia rurale e
Sono io il ragazzo dietro questo progetto
il movimento del cordoba sarà molto tempo
su sì sì, ho usato Ruby per
per circa 10 anni quindi anche prima dei reg
esisteva e in realtà è divertente perché
Non so nemmeno molto dei rave così
e io quindi sono un programmatore
appassionato di lingua e sono pronto io
piace molto la programmazione di basso livello come
Sono un programmatore di mare su base giornaliera
ma il mio sogno è sempre stato quello di usare a
lingue dinamiche per l’applicazione
sviluppo e in passato io
ha contribuito ai wrapper di Revere per
l’ambiente desktop gnome allora ero io
manutentore del ponte di cacao RIBA
che in realtà ti permette di usare un rubino
per parlare con il runtime oggettivo ma
Il cacao rubato non era abbastanza buono per
motivi di prestazioni perché è un it’s
un bridge è un framework middleware
tra i tempi di questa squadra così noi
deciso di creare il progetto macro V
che è una vera implementazione gratuita
essere in cima al runtime oggettivo-c e
quello era il mio progetto per circa quattro anni
Ero un dipendente di Annabel dal 2004
e per l’anno scorso in Apple ho lavorato su a
vita alta OS 10 e anche il nucleo del
che è il livello del sistema operativo molto core
utilizzato per alimentare un supporto e iOS e microb
è stato uno dei miei progetti a Apple e ultimo
anno ho deciso di lasciare Apple per fare un
start-up e tornare a casa mia
paese in Europa in Belgio e nel
il primo prodotto dell’avvio è Ruby
moti quindi è è una parte del mio
raccapricciante ma per iOS così ti consente di farlo
applicazioni per iOS che si sarà
e il nome delle aziende
lui morde quindi è in realtà un posto che è
beep serve morsi comunque ah chi chi
sa che qui ci sarà movimento se tu
okay non molte persone quindi cos’è Ruby
movimento esattamente bene è un è un due
catena che ti permette di scrivere un annuncio
applicazioni in Ruby in modo da poter utilizzare il
Linguaggio di programmazione rubino da scrivere
le applicazioni per iphone o ipad lo è
diverso dalla toolchain di quella mela
ti fornisce di default Apple ti chiede di farlo
usa xcode e oggettivo-c e
oggettivo-c è un linguaggio dinamico mentre
è una sorta di runtime in cima
di vedere che ti permette di usare chiacchiere
messaggi e definire le classi in fase di runtime
è stato bello 30 anni fa 30 anni fa
quando avevi solo C ++ come un
l’oggetto alternativo che vedi era un respiro
di aria fresca era eccezionale ma 30
anni dopo l’obiettivo-c è praticamente tutto
tenere e non è molto popolare nel
Sente che la maggior parte dei programmatori DS loro
non ne so molto di vedere più così
quando ero all’università 10 anni fa noi
elaborato C e assemblaggio ma in questi giorni
Mi sento che i giovani programmatori no
sapere molto su linguaggi di basso livello come
come CN e perché gli obiettivi sono un insieme di
vedere un sacco di programmatori hanno davvero
è un momento difficile per entrare in iOS, quindi ricorda
splendere è davvero sul tentativo di fare a
migliorare la curva di apprendimento è così è
fondamentalmente sarà acceso a causa di iPhone
applicazioni perché si vuole fare io
in realtà è lo sviluppo è in realtà un
mercato molto grande quindi secondo Apple
sono 365 milioni di dispositivi iOS che
sono stati venduti fin dall’inizio
iPhone a circa 400 milioni di iTunes
account account itunes attivi così è
una base di utenti abbastanza grande e in questi giorni
se fai un collegio elettorale specialmente con
nastro si può molto bene
contratto di lavoro da fare è sviluppare
e anche ed è anche possibile vendere
applicazioni nell’app store e provare a
fare un po ‘di entrate questo è molto bene
interessante questo è il primo Ruby
la storia del successo del movimento era la missione OB
cresciuto circa cinque mesi fa ma noi
già hanno ed è molto interessante
la storia di successo di sempre è una clip
applicazione per connettersi effettivamente a
Evernote quindi ti consente di raccogliere informazioni
e mandarli a una finestra è
è anche completamente scritto in movimento
la prima app commerciale e penso di essere io
ho sentito che stanno facendo un bel nastro
lo sai così, è davvero molto eccitante
e ne sollevarono persino uno in più
deathcap quindi se vuoi controllare un real
vera e propria app di emozione in produzione sei tu
puoi controllare sempre clip cosa cosa cosa
è la nostra emozione esattamente bene ogni movimento
è un’implementazione di libero essere al top
del è il quadro è così sto andando
per spiegarlo più avanti è anche un
implementazione staticamente compilata di
rubino è un dialetto di rubino che è
completamente compilato completamente
trasformato in codice macchina al momento della compilazione
il tempo quindi è molto diverso dagli altri
lingue dinamiche l’intera catena del tubo
si basa sul terminale in modo da ottenere solo
usare un terminar per fare tutto così
non è necessario utilizzare alcun ide speciale o
l’interfaccia utente continui a utilizzare il tuo
editor di testo preferito, quindi se lo sei
familiarità con vim o emacs che continui a mantenere
usando questi editor e c’è un lì
è una fantastica comunità intorno al
progetto quindi cerchiamo di coprire questi cinque
punti nella presentazione prima di tutto
parliamo del runtime ci sono a
caratteristica unica delle emozioni è ciò che noi
chiama il runtime unificato in modo da rendere Ruby motion
gli attrezzi saranno allo stesso livello
dove obiettivo-c è il linguaggio delle mele
implementato che significa che in remotion
l’intero sistema oggetto come le classi
e i metodi stanno effettivamente usando lo stesso
runtime come obiettivo c così quando tu
crea una classe in
la promozione è in realtà un obiettivo c
classe sotto la scena e quando tu
definire un metodo in movimento Ruby lo è
anche un metodo obiettivo c sotto il
scena quindi perché è importante è
davvero importante perché otteniamo
attraverso lo sviluppo di app native in questo
modo e senza spese di performance quindi
quando crei un oggetto in Ruby e
lo passi a un obiettivo C API e
questo obiettivo c api chiama il tuo oggetto
non c’è nessun ponte dietro a entrambi
oggetti quindi è solo codice nativo e
non c’è nessuna versione di obiezione di nessuno
ordina così è in realtà molto veloce e noi
in realtà facciamo questo perché noi
lavoro per molto tempo su Rebecca andare quale
è diverso è un middleware tra
due runtime esistenti e c’erano così
molti problemi con un middleware perché
è necessario tenere traccia di uscire 22
sistemi di oggetti esistenti allo stesso tempo
è necessario tenere traccia della memoria
gestione in due mondi diversi qui
questo è davvero unico quindi è in realtà
molto bello per motivi di prestazioni e
anche in remotion le classi di costruzione
l’edificio veramente classi come
stringa o array o hash sono in realtà
usando le classi di base così dentro
obiettivo-c anche tu aggiungi anche questi
costruendo classi puoi creare stringhe
in obiettivo-c e promozione usiamo il
stessa classe per l’implementazione così
anche questo è grande perché significa questo
puoi creare classi in stringhe in
Ruby e passali a iOS e loro non lo faranno
è necessaria una conversione in realtà
basato sulla piccola risorsa che noi
fatto a Apple quando stavamo lavorando su a
ponti di linguaggio di programmazione che abbiamo trovato
fuori che la maggior parte del tipo che attraversa
le lingue sono tipi built-in come
array di stringhe e dizionario così facendo
certo che questi tre tipi di edifici sono
basato sullo stesso codice, ne ricava molto
più facile quindi perché vorresti davvero
usa Ruby se puoi già usarlo
obiettivo c bene questo è il ciao base
esempio del mondo in realtà se non lo fai
sapere molto su Ruby questo definisce a
ciao classe dove c’è un costruttore
che accetta ora
argomento e in questo costruttore chiamato
Inizializza impostiamo l’argomento su an
variabile di istanza in modo che at CG sia
in realtà significa specificare un’istanza
variabile e poi c’è un metodo di dire
che può essere usato per mettere ciao cosa e
qui usiamo l’interpolazione delle stringhe che
significa che il valore di ciò che siamo
sostituito sostituiamo effettivamente ciò che è
succede la stringa così vedrai
ciao qualcosa ed è questo è molto
esempio base ciao mondo e lo stesso
il codice in obiettivo-c sarebbe più simile
questo e questo è esattamente la stessa cosa
crea una classe con la proprietà essa
ha un constrictor ha un metodo say
che stampa il contenuto della variabile
e questo è praticamente tutto così noi
potrei dire che il nocciolo di questo molto
è solo una parte importante di questo codice
tre linee tutto il resto è una caldaia
codice boilerplate ti inietta quando vedi tu
devi creare una classe che devi avere
un sacco di codice intorno a ciò che devi avere
due file separati se si vuole fare
le cose nel modo giusto e diventa carina
motore disordinato dove sarà è molto
linguaggio più conciso quindi ti consente
avere applicazioni molto molto breve
di codice uno dei nostri uno dei nostri utenti
ha riferito di tutti questi esistenti
app obiettivo-c in movimento Ruby e lui
ci ha detto che stava per sbarazzarsi di
il sessanta per cento del codice, quindi solo tu
aveva il 30 percento alla fine, quindi qual è
fantastico perché hai meno codice significa
meno errori, quindi scrivi meno codice
è più facile da mantenere, quindi possiamo farlo noi
avere più tempo per giocare ai videogiochi e
questo è anche questo è un interessante
Snippet Stavo parlando del che
Il movimento rubino si basa sull’obiettivo-c
runtime ma ti permette anche di vedere puro
ap è così se lo sviluppatore c di te
probabilmente sanno che sono C non è un
linguaggio dinamico quindi è molto statico così
hai altri file che descrivono il
apx che puoi usare ma è carino
molto su di esso così e questo è un esempio
di reversione utilizzando l’ API OpenGL e
OpenGL è una cornice
disponibili in iOS e molte persone lo usano
per i giochi giusti ma è un puro capolavoro
quindi è solo un insieme di costanti di macro
e funzioni e strutture ma in
goditi la promozione sviluppiamo uno strato
chiamato bridge report che in realtà
analizza l’intero quadro del mare
e generare supporto per la statica 440
compilatore in modo che quando quando in realtà
prova a chiamare la funzione c del compilatore
è abbastanza intelligente da sapere che sta andando
per essere questa funzione c specifica in questo
quadro e sostituirà il codice
con una chiamata diretta alla funzione c così
e questo è fondamentalmente un basic
questa è fondamentalmente una parte di C a
Ruby e la cosa molto divertente è quella
il ragazzo che ha fatto questo ha dimenticato di rimuovere
il punto e virgola è sulle linee che è
in realtà non richiesto sarebbe così così
Puoi e tutte queste cose come per
per esempio il GL clear color è il c
funziona il gr e il punteggio corrente
punteggio prima che il bit del punteggio sia effettivamente a
macro penso macro a qualcosa così tu
posso non avere idea di cosa faccia questo codice
a proposito ma funziona così parliamo
riguardo al compilatore e comunque
questo logo è il logo di llvm
progetto che è il logo più fantastico
mai e sarà il movimento è basato su llvm
quindi è in realtà molto interessante
perché per quanto ne so ogni moto è
la prima implementazione di freebie
è completamente compilato staticamente così
cosa significa che ne hai solo uno
compilazione costruisci così trasformiamo il
Codice rubino in codice macchina e poi
non c’è più più calcolo così
noi non facciamo solo il calcolo nel tempo
non fare l’interpretazione del codice per lo più
perché questi sono praticamente neri
buchi nelle regole delle linee guida così noi
non voglio rovinare con Apple così il
codice che scrivi la tua emozione non può
fare runtime di valutazioni di codice quindi solo noi
compila una volta e usiamo lvm per questo e
Ho intenzione di spiegare un po ‘di
processo di calcolo
quindi per prima cosa iniziamo con la sintassi di Ruby
che è fondamentalmente un testo puro, quindi qui
abbiamo un abbiamo definito l’inferno di te
chiudo che genera da te che vedo
che è una classe iOS definiamo un metodo
e poi chiamiamo il metodo super e
allora preghiamo per fare un disegno personalizzato
roba e guarda il compilatore che facciamo
questo in un ast che è un astratto
albero della sintassi qui sto usando un molto semplice
annotazione ma è fondamentalmente un donatore
modo di destra quindi è davvero enorme
alberi di token e questo è in realtà
molto comune nei linguaggi di programmazione
la maggior parte dei linguaggi di priming anche parser HT
e compilatore e c’è il DST il
il compilatore genererà un intermedio vm
la rappresentazione è così, se lo sai
quello che è in realtà è un insieme di
moduli giusti compilatori quindi è in realtà
molto bello ed è anche un linguaggio per
questi moduli la lingua in uso è IBM
chiamato intermedio intermedio
rappresentazione quindi è una sorta di
linguaggio assembly generico che puoi
puoi effettivamente costruire questo linguaggio e
aveva istruzioni ad esso e poi lì
sono tutti questi moduli lvm che ti permettono
generare codice target qualsiasi
l’architettura di cui hai bisogno per quello stesso
codice specifico in base alla st che
assemblaggio equivalente llvm energia
istruzioni e ne applichiamo anche molte
l’ottimizzazione passa lì così facciamo
metodo inlining facciamo quella rimozione del codice
noi abbiamo sostituito i loop, ne abbiamo persino uno
musicista dipendente appt a fare una coda
eliminazione corticale quindi ha il tuo
corretto codice funzionale in Ruby che è
bello e dopo che possiamo solo target
possiamo scegliere come target l’assemblaggio per il corretto
architettura e il supporto a fino a
due architetture intere a 32 bit che è
richiesto per il simulatore e poi noi
avere diverse architetture per questo
diverso è l’hardware con il braccio
armbrister 6v set e abbiamo impostato come nuovo
architettura iphone 5 e basata su
assemblaggio possiamo quindi ottenere un codice macchina
che sembra niente ma nessuno è
andando a guardare il codice della macchina
così via così questa diapositiva è che la ricordo così
su così questa è un’applicazione chiamata
mustachio che ho scritto con un amico di
il mio è probabile che sarà il primo
app di movimento in realtà l’ abbiamo scritto
assicurati che la mela approverà
applicazioni commerciali quindi è in realtà
una semplice app che usa usa cover
immagine per rilevare i volti all’interno dell’immagine
oops mi dispiace che tu abbia scelto questa immagine di copertina
per rilevare i volti e poi su ogni faccia
a un certo punto, ma lo collega
crescerebbe i baffi secondo il
per i ragazzi faccia ed è davvero molto
interessante così è stata la fonte del codice
Github a proposito dovrebbe digitare il mustachio
sarai in grado di vederlo ma il
l’applicazione è stata rimossa da Apple
dato che ci siamo dimenticati di rinnovare il mio
Account Apple Developer quindi non lo ero
consapevole che eliminerebbero il tuo
le applicazioni che sono piuttosto brutte ascoltano
tu una e-mail vuoi rinnovare la tua
icona ho detto bene no vorrei creare un nuovo
uno ma ho dimenticato che avrebbero rimosso
l’app in ogni caso quindi è molto
semplice app e il ragazzo nel
lo screenshot è mio figlio , ma che cosa
è davvero ciò che è interessante qui è il
dimensione dell’applicazione non sono sicuro se
puoi vederlo ma la dimensione dell’app
è il megabyte redline quindi questo è quello che
Voglio davvero incontrare la diapositiva
il sovraccarico di runtime in una versione in rubino
l’app è molto meno di un megabyte
eccolo qui alle nove in qualche modo
di compressione quindi è molto carino così
è il compilatore genera una bella
molto codice molto ottimizzato ma davvero
cerca di assicurarti che il finale
l’eseguibile sarà il più breve possibile
e abbiamo lavorato per ridurre
le buone dimensioni di 300k in meno, ma è
ancora super distorcendo e anche questo
molto diverso dagli altri sviluppi
piattaforme che hanno messo quell’annuncio per il suo
intendevo un morso sulla tua applicazione e
è se penso che se ne andrai oltre i dodici
megabyte che non puoi usare puoi
scaricare applicazioni da reti 3G
più così può
un problema quindi qui ci riproviamo per essere sicuri
il confronto sta generando un brevissimo
codice ora ho intenzione di parlare un po ‘
la catena di strumenti così la vera emozione
catena è basata sul terminale così tu
usa il terminale per tutto e tu
utilizzare il terminale per creare un progetto e
il progetto è fondamentalmente un elenco di
un’attività del settore esiste un file reg
se non sai molto su Ray puoi farlo
trascinare i file reg è davvero equivalente
di fare il mare sulla base di intendo di solito
make è usato per i programmi C e il rake è
il migliore è il sistema di costruzione di fatto di
Ruby e un progetto di movimento del nastro è
fondamentalmente un file reg che ha tre
linee di codice per impostazione predefinita perché il
intera configurazione del progetto come predefinita
valori in modo da poter personalizzare tutto
in là nel file reg ma per impostazione predefinita
come valori di default sensibili e il reg
il file ha anche un sacco di compiti che tu
può usare dalla riga di comando per a giocare
con il progetto e i tre più
compiti importanti sono il compito del simulatore
che è anche quello predefinito che lo farà
invia l’applicazione sul simulatore
c’è un test del dispositivo che lo farà
effettivamente inviare l’applicazione sul tuo
dispositivo e puoi anche avviare il
applicazione subito vedi se vuoi
per vedere immediatamente l’applicazione
in esecuzione sul dispositivo e finalmente lì
è un test di distribuzione dell’archivio che lo farà
generare un file IPA adatto per l’app
Conserva una distribuzione da due settimane
fa abbiamo aggiunto un’emozione di supporto al forno
quindi questo è molto eccitante se una misura se
voi ragazzi sapete che il nostro nanismo è un
formato di dybbuk per il tuo originale
scritto per programmi basati sul mare in modo che
ti consente di aggiungere contesto per informazioni
sul tuo codice sorgente per
soprattutto per i debugger e noi
in realtà supporto da dove sei
il compilatore lo sa quando quando tu
compilare quando siamo in grado di acquistare veramente codificato per
codice macchina questo codice macchina come
grande informazione subito quindi significa
che sappiamo per esempio che a questo
stiamo parlando di qualcosa di molto specifico
questo sarà metodo e questo file e
questa linea così è ray voi
44 e quando per esempio si ottiene il
schiacciato sollevare sarebbe moto app noi
può sapere e i dati si incrociano
il file di informazioni online del tuo
progetto e per quanto ne sappiamo siamo noi
sono l’ unica altezza di un linguaggio che
supporto nano e usiamo il wii u possibile
Collega il tuo debugger qui usiamo gdb ma
possiamo passare a lgb più tardi e preghiamo
scrivi meglio è il più grande in futuro
ma puoi toccare con il Dybbuk in giro
sia il simulatore che il dispositivo tu
puoi impostare i breakpoint e puoi aspettarti
praticamente tutto dentro
debugger e questo è solo uno screenshot
di una sessione di debug qui possiamo noi
può effettivamente impostare un punto di interruzione su
da qualche parte nel file di rubini, allora possiamo
possiamo continuare il programma e poi esso
pause sul punto di rottura, naturalmente e
se scrivo BTW che stampa il file
back-trace puoi vedere la prima linea come
informazioni sul nome del metodo e
quindi il file e la linea, quindi è così
in realtà molto molto molto utile un altro
quello che facciamo è che facciamo test e
rapporti con un po ‘di pancetta malata
che è una struttura R come framework così
ti permette di scrivere un test usando un inglese
come la lingua quindi è come una sorta di dsl
per il test ed è anche integrato
con il ciclo di corsa United che significa
che tutti i test saranno eseguiti quando
l’applicazione inizia e questo tipo di
cose e viene fornito con un funzionale
strato di prova che è il più importante
parte della parte di test in modo che tu possa
scrivere test funzionali come ad esempio
tocca questo pulsante per ottenere il campo di testo di
questo ottiene il valore di questo campo di testo
e i suoi versi così puoi scrivere carina
test poco elaborati per la tua app e
puoi anche usare un test guidato
sviluppo con le tue emozioni e questo
questo livello si basa sull’automazione dell’interfaccia utente
che è un framework per cui Apple usa
test ma alla differenza che aggiungono
su tutto il giorno ti costringono a usare
JavaScript per scrivere i tuoi test perché
non puoi davvero usare l’obiettivo c giusto
prova è troppo basso, ma anche noi
non voglio usare javascript perché noi
già ho davvero così ti lascia scrivere
ti permette di usarlo ancora emissioni da
rudy
che è molto meglio di JavaScript e
questo è un frammento di un test che usa il
questa nuova prova è così che possiamo vedere
che si legge come l’inglese giusto
descrivere il controller della vista del timer
test testiamo questo controllo molto specifico
poi come farebbe un timer e poi noi
fare test lì così dovrebbe essere
un amichevole per gli sviluppatori, quindi non lo facciamo
questo è così, voi ragazzi riconoscete cosa
questa è la competenza di Xcode
adulti e noi non supportiamo Xcode
per impostazione predefinita in movimento Aruba prima perché
xcode è un editor pessimo per lo sarà
e anche per altre lingue ecc
la delusione è che è molto brutto per a
un po ‘così male che se usi un normale
espressione dentro di te codice il
parser sarà effettivamente se si utilizza a
parola chiave riservata all’interno del normale
espressione inizierà l’analisi del
resto del file mi dispiace e comunque così e
il primo è quello di xcode è in un primo momento
è gestito da Apple e si rompe a
molto tempo per cui non vogliamo fare affidamento
questo e anche rick scott è molto magico
quindi se hai usato xcode lo sai
con cui puoi creare un’interfaccia utente
generatore di interfacce e che ti permette
crea tu ti auguro il tuo mouse e poi se
fai clic da qualche altra parte ti rompi
qualcosa e poi puoi anche creare
modelli di dati di base che è il database di
iOS con il mouse ma non lo facciamo davvero
in questo modo è davvero fantastico
per obiettivo-c perché obiettivi
è noioso se vuoi fare cose
programmaticamente può diventare molto fastidioso
ma in realtà è così semplice e in
rivedere rilasciare il grande linguaggio giusto
strati di astrazione anche chiamati
lingue specifiche del dominio, così siamo
prendendo un approccio diverso qui e noi
preferisco che le persone facciano tutto
programmaticamente così senza usare il
mouse e magia ma in Ruby il codice può
sii molto più breve quindi ti mostrerò questo
più tardi e non sarebbe un vero swinger
codice di alex senza il
l’incidente sto scherzando, quindi puoi usare
il tuo demotion editoriale preferito e
personalmente ho spostato l’utente quindi è così
il miglior editor in assoluto, ma anche le persone lo usano
una notte di testo o il testo recente sublime
2 auto rossa è un è molto interessante
editor è tutto scritto in Ruby usando
l’implementazione GV e hanno a
molto bella integrazione con le tue emozioni
quindi puoi creare un progetto da
macchina rossa a pranzo per simulare o il
compilatore tutto funziona è davvero
fantastico e c’è anche un massimo che è
una sorta di sistema operativo che puoi
usa Emacs anche se ti piace davvero
come il rubino il mio è in realtà
lavorando con i difetti di JetBrains che
sono persone molto simpatiche, a proposito e noi
stanno lavorando per aggiungere la versione rubino
sostenere o non rubare il mio così potrebbe
vieni dopo, quindi se sei interessato
a questo proposito dovresti seguire il loro sangue
correttamente e ci sarà un
annuncio ma molto interessante
circa sarà mio è quello che fornisce
il completamento automatico dell’AP di iOS è da a
prospettiva contestuale quindi ne ho fatti alcuni
screenshot della prima beta S & P qui
se digiti solo la tua finestra io
loggato ti suggerirà il
suggerimento con il metodo frame perché è
in realtà un metodo se qualcuno di voi ha te
ma tu I window è una sottoclasse di UI
visualizzare in modo da poter selezionare questo questo
suggerimento che possiamo continuare a camminare voi
è necessario fornire un rettangolo per questo
Metodo come argomento in modo da iniziare con
il metodo di schermo dell’interfaccia utente e poi esso
ti suggerisce di ottenere la schermata principale
che è esattamente quello che vuoi tu
tieni e poi ti suggerisce di tornare
il metodo dei limiti e l’uso del paraurti
metodo con restituire il rettangolo Rick
giusto per questa finestra, quindi qui ci provo
che stamattina, a proposito, è così
fottutamente fantastico, quindi penso una volta
questo sarà disponibile questo lo farà
la vita dello sviluppatore di promozione in molto
Più facile
ora parliamo un po ‘di
speranza di movimento nastro della comunità che era
a proposito veloce e l’ultima volta guardo
ci sono circa 500 progetti su github
per lo più o librerie o un codice di esempio ma
anche questo editor supporta tutti questi
il supporto degli editor è fondamentalmente open source
e la comunità che gestisce il movimento di Ruby
è cresciuto così velocemente il primo il primo
due settimane che il presente progetto era
rilasciato abbiamo avuto migliaia di
gli sviluppatori che si uniscono e acquistano e
usando la piattaforma quindi è davvero molto
molto molto grande quindi seleziono solo alcuni
il progetto da mostrare mostra che oggi è TCAP
in realtà un bel progetto che ti lascia
è un DSL per uno scrivere te, ma è così
usa la convenzione CSS nel senso
che scrivi la presentazione
stile dalla presentazione così qui noi
puoi effettivamente creare creare qualche tipo
di un oggetto di stile di stile che lo farà
contenere il layout del tema della
i tuoi widget come ad esempio il testo
i campi sono una barra di ricerca o pulsanti e
allora puoi applicare questo foglio di marea a a
controller di visualizzazione specifico e così e tutti
gli elementi su questo controllo che usiamo
la squadra specifica quindi può essere molto
interessante e questo è molto meglio di
usare l’ iacp è un involucro di bolle è un
anche un progetto interessante è un it’s a
progetto molto interessante che fornisce a
è un sacco di piccoli involucri intorno a djuice
AP è così qui per esempio il rosso di
il metodo di post HTTP bubble wrap come
fai HTTP POST e se vuoi farlo
questo a livello di programmazione è necessario utilizzare a
non ricordo nemmeno il nome del
classe ma è come 10 linee di codice
qui in una sola riga e passi a
blocco e hai il tuo HTTP POST
richiesta che è fantastica e poi tu
puoi usare l’adiacente a questo rapper JSON
analizzare e generare anche Jason così
questa è la bella formulazione che ti lascia
costruisci il tipo di vista che vedi
il diritto usando un hash così è
estremamente utile se hai fatto
un po ‘di sviluppo iOS probabilmente
sappi che facendo questo tu programma a
è molto molto complicato è una specie di
del tuo tavolo, puoi scusarti
essere molto noioso e qui è solo
un hash che si passa a un’API e
hai finito, quindi non sono sicuro del motivo per cui vuoi
per fare questo programmatico no e parti
la madre è un progetto interessante è a
è un involucro per le barre calmo e
servizio in modo che parte venga se si nomina
è una sorta di dati sul valore della chiave remota
memorizzare che è possibile utilizzare come back – end
della tua applicazione in modo da poter impostare
valuta il cloud e ottiene valori dal
nuvola e ed e questa è una rivelazione
involucro per esso così sembra un po ‘come
record attivo se si sa se usato
gara puoi definire una classe quindi puoi
dì che in realtà sarà un
modello per le parti, quindi è possibile impostare il
campi e poi una volta creato il post
una volta che si preme il metodo di salvataggio lo farà
salva l’oggetto nella rete allora tu
puoi recuperarlo più tardi così è in realtà
carino e sì, l’ultimo progetto
volevo mostrarti lo stato del movimento
progetto di macchina che ti consente di scrivere
macchine di stato in movimento Ruby così
onestamente questa è la cosa del Mac, così ho
non ho idea di cosa faccia questo codice, ma è così
in realtà così puoi effettivamente crearne uno
stato macchina e collegarlo al è
Evan loop in modo che quando la notifica
arriva può entrare in uno stato diverso
nella macchina ma ciò che è molto
interessante è che l’intero
la libreria è in realtà basata su gcd grand
la spedizione centralizzata GCD è la concorrenza
libreria che altre navi con iOS e
anche come 10 e il movimento Ruby fornisce a
wrapper per gcd ma non è eccezionale
e tutto questo è tutto basato su
tricity quindi tutte le callback sono
sincrono saranno concomitanti
e la rivoluzione di Ruby è anche una novità
implementazione di preposizione di veramente
questo non ha un interprete globale
bloccare così tutto può essere eseguito
in concomitanza quindi penso che questo sia
andare sarà molto
progetto interessante in quelli futuri
I dispositivi iOS ottengono più core della CPU e io
ti mostrerà un duo di una promozione
quindi iniziamo iniziamo con a
nuovo progetto quindi dovremo solo andare su TMP ok
e creiamo solo un nuovo progetto chiamato
ciao e come puoi vedere ha creato a
mazzo di file ciao reg file è il
configurazione del progetto quindi hai questo
directory app che per impostazione predefinita è un combattimento
allora hai una risorsa che è vuota
questa directory dovrebbe contenere tutto il
immagine e suono e fondi in qualsiasi cosa
tutti i file di risorse che il tuo
l’applicazione richiede il runtime e quindi il
la directory spec contiene il test per
replica quindi se vuoi farlo
è possibile iniziare lo sviluppo basato su test
proprio qui e scrivi il test e se io
interject renate una rottura sta per
compilare il mio oh questo è vero che sta per
limitare la mia applicazione e quindi eseguirla
sul simulatore oops qui andiamo così
l’ammiratore è piuttosto lento oggi, quindi non lo faccio
sapere cosa sta succedendo, ma abbiamo un umido
l’applicazione in esecuzione qui ed è a
finestra vuota quindi perché è vuoto perché
per impostazione predefinita non generiamo molto codice
se controllo il se ti mostro il
metodo di delega dell’applicazione che puoi vedere
che è solo un metodo di base
ritorna vero, quindi non coincidiamo qui
quindi, cosa posso fare di nuovo, posso iniziare
Posso creare una vista di errore che posso mostrare
loro possono impostare il messaggio per l’ inferno
tu ed io possiamo quindi eseguire la recensione di Randy allora
se digito di nuovo una pausa
oops cosa sta succedendo qui
da quando abbiamo aggiornato Xcode sì sì
o ciao vai qui da noi, capacità
per xcode quattro prendiamo il simile
il tour impiega tre secondi per imparare
non sono sicuro di cosa sta succedendo qui e
quindi questo è fondamentalmente ricompensa e ora
Ti mostrerò un più interessante
esempio ti mostrerò che il
applicazione del timer è uno dei
primi campioni che abbiamo costruito con rubino
movimento che attacca un sacco di tempo per iniziare
il simulatore a posto ci andiamo quindi questo
è un’app molto semplice e ha un’etichetta
un pulsante una volta si fa clic sul pulsante il suo
avvia questo timer e quando lo interrompi
si ferma molto semplice quassù
interessante è che si può vedere che
con un’onda una richiesta qui è in realtà
ciò che chiamiamo ondulazione ed è a
console veramente interattiva dove possiamo
digita espressioni e queste espressioni
sarà compilato utilizzando il tempo di vestizione
calcolo e quindi inviato al
applicazione utilizzando una pipe unix e poi
eseguilo in un interno dentro il
domanda presentata in modo da poterlo fare
istruisca l’introspezione che possiamo introspettare
tutto nell’applicazione utilizzando a
riga di comando quindi questo può essere molto utile
specialmente quando hai a che fare con un nucleo
dati in cui puoi introspettare il contenuto
l’applicazione in esecuzione e un molto
la caratteristica interessante dell’emozione reale è
che ti lascia se mantengo il
comando e quindi spostare il mouse sopra
il simulatore come puoi vedere posso farlo
vedere le viste all’interno del simulatore e
per esempio se sento che seleziono il principale
guarda e se clicco su di esso la shell è I
ottenere un guscio indietro ma il contestuale
l’oggetto è ora questo uiview specifico se io
tipo self self diventa la visualizzazione dell’interfaccia utente di
questa è la vista che ho selezionato così posso
prigione come per il colore di sfondo e
dice Neil perché non c’è colore
ma posso posso assegnare
a un nuovo colore vero oh non c’è ah
questo è un grande obiettivo come questo e di nuovo
Posso sostanzialmente cambiare l’applicazione
in fase di esecuzione sì, questo è qualcosa che tu
non può davvero fare in obiettivo-c è molto
complicato e puoi farlo puoi usare
questo anche per lo sviluppo rapido per
istanza puoi iniziare il tuo codice che puoi
posiziona i widget ma non lo sai davvero
dove dovrebbero andare, ad esempio, io
posso selezionare il mio lavoro qui posso controllare
la cornice dei suoi ventiduemila va bene
quindi posso impostare la cornice su qualcosa
diverso come
come questo
puoi vederlo muoversi un po ‘più in basso
in alto posso sostanzialmente riposizionare il mio widget
quindi questo può essere molto interessante ora
vorrei mostrarti il debugger così
se digito break con il comando back
uno inizia al più grande e poi a noi
stanno correndo dentro l’hamburger e
tipicamente l’applicazione è in esecuzione che posso
in ogni momento pausa e poi posso vendere
incinta se voglio fissare un breakpoint
al controller del timer come puoi vedere io
basta usare lo spazio delle schede e lo sa
c’è questo file nel progetto che posso
interruzione sulla linea 32 per esempio che è un
ok, non lo so, vediamo prima
oops
sai qual è il modo migliore per farlo
fare un errore nel codice, quindi se vado
qui e tutti da quando sono qui
invalido Ho intenzione di rimuoverne uno
lettera I salva il file ora se lo eseguo
all’interno del debugger è questo il problema
che verrebbe chiamato quando il pulsante è
cliccato così qui sono in esecuzione e lo è
lavorando perché ho anche cliccato se io
click boom clicco la seconda volta e
si rompe qui in modo che si rompa quando si alza
un’eccezione quindi se chiedo il
back-trace questa è la traccia posteriore dove
l’eccezione è sollevata e possiamo vedere
che stiamo attivando il metodo mancante
che è davvero un’eccezione ma qui noi
sappi che siamo davvero qui in tempo
dove culturale 25 26 che è dove il
l’eccezione è sollevata quindi se vado a questo
linea questo è esattamente dove siamo così noi
sappi che è qui che la borsa è così io
può cambiare una linea e lavorare qui e
da qui posso selezionare il fotogramma
sette e ora sono nel codice Ruby che posso
Posso stampare il codice Ruby e posso anche
vedere l’introspezione cosa succede se io
tag se controllo per il possibile controllare il
oggetto timer che crea il proprietario o
perché è stato invalidato
sì perché è qui sì, comunque
debugger è bello perché puoi
in realtà vedi che puoi effettivamente impostare
i punti di interruzione controllano le variabili e il
l’ultima cosa che volevo mostrarti è la
quadro delle speculazioni quindi in questo esempio noi
avere un sacco di specifiche che abbiamo scritto così
abbiamo scritto le specifiche dopo il codice così
non sta seguendo un test guidato
sviluppo ma puoi scrivere le specifiche
prima se senti che puoi dormire
meglio di notte e alcuni sto solo andando
per eseguire le specifiche prima, quindi dovresti
premere indietro per ricostruire il
applicazione per
carico di specifiche che poi costruirà
la libreria delle specifiche quindi solo una volta
e poi ricomincia a guardare
è necessario che esistano effettivamente con zero
zero e zero errori quindi ha eseguito tutti questi
forza tutte queste quattro specifiche così
non puoi davvero automatizzare puoi farlo tu
può automatizzare la tua applicazione in questo modo
in realtà molto bello se io se mostro il
codice sorgente puoi vedere che è qui io
Posso toccare il pulsante di avvio che aspetto
un secondo poi tocco il pulsante stop quindi
qui controlliamo se il testo dell’etichetta
è sotto uno e anche prima che significa
che in realtà avrebbe dovuto aspettare uno
secondo, in modo che tu possa effettivamente scrivere molto
bella serie di test intorno al tuo
applicazioni e sì penso che
dovrebbe esserlo se avete domande
o se vuoi vedere qualcosa di più lascia
io torno alle diapositive e sì
sì sì così così è la gestione della memoria
a è lo stesso dell’arco in inclinazione, così facciamo
non è necessario preoccuparsi di mantenere e
rilascio intendo che non hai bisogno di contare
pensare con 10 conta un calo
l’oceano in modo che il tempo di esecuzione sarà a
rilascio proprietario e conservare il tuo
oggetti e lo facciamo in fase di runtime così
tranne che arctos è un tempo di calcolo
quindi è praticamente come ci si sente come
raccolta dei rifiuti ma non è vero
raccolta dei rifiuti, nel senso che il
oggetti siamo rilasciati solo quando il
la puleggia di rilascio automatica più vicina è stata distrutta così
la montatura è davvero basata sul
stesse classi di memoria e obiettivo C sì
si si
sì sì così puoi così ho anche
ne ho parlato ma puoi integrarti
qualsiasi libreria di terze parti quindi è molto
facile puoi farlo in due modi per prima cosa no
i primi modi per farlo manualmente così tu
può incorporare il progetto Xcode all’interno del tuo
applicazione e le seconde modalità di utilizzo
baccelli di cacao e ci integriamo con il cacao
i pod e, in effetti, il ragazzo che lo fa
il pass di cocco è in realtà un mio amico
quindi cerchiamo di assicurarci che sia così
funziona alla grande con la reversione, sì sì
e se non sai cosa baccello di cacao
afferrato dal modo in cui è una sorta di
gestione dei pacchetti per obiettivo-c
librerie quindi è davvero molto bello e
in movimento Ruby puoi cancellarlo ma
per un quadro specifico e funziona
grazie
sì sì eh sì sì, per esempio, così
in questo momento l’intero cambiamento è aperto
fonte tranne il compilatore e il
runtime quindi il tutto il tutto
roba da riga di comando è open source quindi
le persone possono aggiungere attaccare il codice sorgente
e ma il tempo di affitto e il compilatore
è ancora un proprietario e bettia così noi
in realtà apriamo il resto del
codice i mesi dopo durante il pranzo
perché molte persone chiedono di chiederlo sì
non funziona sul dispositivo eppure no
non funziona ancora sul dispositivo ma tu
sì sì sì è possibile sì ma il
solo in realtà è felice di essersi connesso
difficile perché noi bene è difficile per a
dal punto di vista tecnico usiamo un TlV I’m
solo io sono un compilatore nel ripple e tu
non è possibile utilizzare la tua certa popolazione
perché non ti consente di contrassegnare la memoria
pagina come eseguibile, ma ci proveremo
trova un modo per lavorarci , ma è solo
per lo sviluppo quindi cosa non serve
per sapere altre domande si, si
sì così adesso non abbiamo davvero guardato
così tu sai che puoi farlo tu
puoi usare gli strumenti che hanno X ottenuto a
profiler su applicazioni di movimento Ruby e lo farà
lavora Marius Marius fuori dalla scatola
perché prima perché abbiamo obiettivi Ruby
Il movimento rubino obietta il nostro obiettivo c
oggetti in modo da poter vedere il primo come te
puoi vedere tutto il tuo audio direttamente
in fase di creazione puoi vedere il nome e
il nome corrisponde alla classe Ruby
così funziona e anche quando tu quando tu
ottenere una traccia di chiamata per ogni assegnazione
assegnazione di oggetti perché supportiamo il
roba nano stavo parlando significa
che puoi vedere dove si trova nel codice Ruby
questo soggetto è stato creato in questo modo
funziona se tu puoi usare lo strumento I.
pensa ma il primo è quello strumento
è praticamente utilizzabile a Miami
non puoi davvero usarlo per un grande
l’applicazione diventa molto lenta e um I’m
Non sono sicuro se lo vuoi davvero usare
e ma quello che vorremmo fare è
scrivere il nostro profilo ad un certo punto
che sarà anche il livello più alto
perché davvero persone davvero diverse
voglio sapere di molti oggetti e
tracce e cose del genere è come
il debugger è il debugger adesso
molto molto caricato voglio dire che devi sapere
gdb ed entrambe le razze supportate e cose e
in realtà i rapporti non sono belli
familiarità con ciò, quindi vogliamo costruire un
più in alto sui dati che Ryan ha dimenticato di fare
menzioniamo anche noi i vassoi
ci sono sonde dtrace in the
runtime in modo da poter eseguire eccezioni di traccia
messaggi oggetto allocazioni tipo di
cose che possono essere usate anche per profilare
per esempio cosa sta succedendo quando tu
quando è in un ciclo infinito sì 11
posizione sì
sì, questa è la caratteristica numero uno
richiesta quindi sì, siamo noi
considerando di farlo ma preferisco non farlo
parlarne fino a quando non è giù così così noi
non voglio che sia preferibile sì, lo sappiamo
che molte persone volevano, così siamo
piuttosto di andare a guardare dentro lasciare che un tempo
sarà disponibile ti faremo uno
annuncio forse altre domande
sì
okay okay sì bene, quindi penso ci
sono due due grandi vincoli il primo
uno è il male puoi usare il male con a
stringa e il secondo è quello
dice che è davvero compilato staticamente
quindi il metodo require non funziona
rivoluzione è necessario fornire tutto il
file al momento e questi sono i due
grandi vincoli per quanto ne so tu
puoi usare tutto il resto così il primo
costruito non abbiamo supportato il metodo define
ma lo aggiustiamo così sono così evoluto con
la stringa e richiedono che non lo siano
andando a lavorare in qualsiasi momento presto penso di più
le domande non lo colpiscono bene, grazie
molto
qui oggi e questo è ciò che darò
per parlare di movimento del nastro
e così il mio nome è una follia rurale e
Sono io il ragazzo dietro questo progetto
il movimento del cordoba sarà molto tempo
su sì sì, ho usato Ruby per
per circa 10 anni quindi anche prima dei reg
esisteva e in realtà è divertente perché
Non so nemmeno molto dei rave così
e io quindi sono un programmatore
appassionato di lingua e sono pronto io
piace molto la programmazione di basso livello come
Sono un programmatore di mare su base giornaliera
ma il mio sogno è sempre stato quello di usare a
lingue dinamiche per l’applicazione
sviluppo e in passato io
ha contribuito ai wrapper di Revere per
l’ambiente desktop gnome allora ero io
manutentore del ponte di cacao RIBA
che in realtà ti permette di usare un rubino
per parlare con il runtime oggettivo ma
Il cacao rubato non era abbastanza buono per
motivi di prestazioni perché è un it’s
un bridge è un framework middleware
tra i tempi di questa squadra così noi
deciso di creare il progetto macro V
che è una vera implementazione gratuita
essere in cima al runtime oggettivo-c e
quello era il mio progetto per circa quattro anni
Ero un dipendente di Annabel dal 2004
e per l’anno scorso in Apple ho lavorato su a
vita alta OS 10 e anche il nucleo del
che è il livello del sistema operativo molto core
utilizzato per alimentare un supporto e iOS e microb
è stato uno dei miei progetti a Apple e ultimo
anno ho deciso di lasciare Apple per fare un
start-up e tornare a casa mia
paese in Europa in Belgio e nel
il primo prodotto dell’avvio è Ruby
moti quindi è è una parte del mio
raccapricciante ma per iOS così ti consente di farlo
applicazioni per iOS che si sarà
e il nome delle aziende
lui morde quindi è in realtà un posto che è
beep serve morsi comunque ah chi chi
sa che qui ci sarà movimento se tu
okay non molte persone quindi cos’è Ruby
movimento esattamente bene è un è un due
catena che ti permette di scrivere un annuncio
applicazioni in Ruby in modo da poter utilizzare il
Linguaggio di programmazione rubino da scrivere
le applicazioni per iphone o ipad lo è
diverso dalla toolchain di quella mela
ti fornisce di default Apple ti chiede di farlo
usa xcode e oggettivo-c e
oggettivo-c è un linguaggio dinamico mentre
è una sorta di runtime in cima
di vedere che ti permette di usare chiacchiere
messaggi e definire le classi in fase di runtime
è stato bello 30 anni fa 30 anni fa
quando avevi solo C ++ come un
l’oggetto alternativo che vedi era un respiro
di aria fresca era eccezionale ma 30
anni dopo l’obiettivo-c è praticamente tutto
tenere e non è molto popolare nel
Sente che la maggior parte dei programmatori DS loro
non ne so molto di vedere più così
quando ero all’università 10 anni fa noi
elaborato C e assemblaggio ma in questi giorni
Mi sento che i giovani programmatori no
sapere molto su linguaggi di basso livello come
come CN e perché gli obiettivi sono un insieme di
vedere un sacco di programmatori hanno davvero
è un momento difficile per entrare in iOS, quindi ricorda
splendere è davvero sul tentativo di fare a
migliorare la curva di apprendimento è così è
fondamentalmente sarà acceso a causa di iPhone
applicazioni perché si vuole fare io
in realtà è lo sviluppo è in realtà un
mercato molto grande quindi secondo Apple
sono 365 milioni di dispositivi iOS che
sono stati venduti fin dall’inizio
iPhone a circa 400 milioni di iTunes
account account itunes attivi così è
una base di utenti abbastanza grande e in questi giorni
se fai un collegio elettorale specialmente con
nastro si può molto bene
contratto di lavoro da fare è sviluppare
e anche ed è anche possibile vendere
applicazioni nell’app store e provare a
fare un po ‘di entrate questo è molto bene
interessante questo è il primo Ruby
la storia del successo del movimento era la missione OB
cresciuto circa cinque mesi fa ma noi
già hanno ed è molto interessante
la storia di successo di sempre è una clip
applicazione per connettersi effettivamente a
Evernote quindi ti consente di raccogliere informazioni
e mandarli a una finestra è
è anche completamente scritto in movimento
la prima app commerciale e penso di essere io
ho sentito che stanno facendo un bel nastro
lo sai così, è davvero molto eccitante
e ne sollevarono persino uno in più
deathcap quindi se vuoi controllare un real
vera e propria app di emozione in produzione sei tu
puoi controllare sempre clip cosa cosa cosa
è la nostra emozione esattamente bene ogni movimento
è un’implementazione di libero essere al top
del è il quadro è così sto andando
per spiegarlo più avanti è anche un
implementazione staticamente compilata di
rubino è un dialetto di rubino che è
completamente compilato completamente
trasformato in codice macchina al momento della compilazione
il tempo quindi è molto diverso dagli altri
lingue dinamiche l’intera catena del tubo
si basa sul terminale in modo da ottenere solo
usare un terminar per fare tutto così
non è necessario utilizzare alcun ide speciale o
l’interfaccia utente continui a utilizzare il tuo
editor di testo preferito, quindi se lo sei
familiarità con vim o emacs che continui a mantenere
usando questi editor e c’è un lì
è una fantastica comunità intorno al
progetto quindi cerchiamo di coprire questi cinque
punti nella presentazione prima di tutto
parliamo del runtime ci sono a
caratteristica unica delle emozioni è ciò che noi
chiama il runtime unificato in modo da rendere Ruby motion
gli attrezzi saranno allo stesso livello
dove obiettivo-c è il linguaggio delle mele
implementato che significa che in remotion
l’intero sistema oggetto come le classi
e i metodi stanno effettivamente usando lo stesso
runtime come obiettivo c così quando tu
crea una classe in
la promozione è in realtà un obiettivo c
classe sotto la scena e quando tu
definire un metodo in movimento Ruby lo è
anche un metodo obiettivo c sotto il
scena quindi perché è importante è
davvero importante perché otteniamo
attraverso lo sviluppo di app native in questo
modo e senza spese di performance quindi
quando crei un oggetto in Ruby e
lo passi a un obiettivo C API e
questo obiettivo c api chiama il tuo oggetto
non c’è nessun ponte dietro a entrambi
oggetti quindi è solo codice nativo e
non c’è nessuna versione di obiezione di nessuno
ordina così è in realtà molto veloce e noi
in realtà facciamo questo perché noi
lavoro per molto tempo su Rebecca andare quale
è diverso è un middleware tra
due runtime esistenti e c’erano così
molti problemi con un middleware perché
è necessario tenere traccia di uscire 22
sistemi di oggetti esistenti allo stesso tempo
è necessario tenere traccia della memoria
gestione in due mondi diversi qui
questo è davvero unico quindi è in realtà
molto bello per motivi di prestazioni e
anche in remotion le classi di costruzione
l’edificio veramente classi come
stringa o array o hash sono in realtà
usando le classi di base così dentro
obiettivo-c anche tu aggiungi anche questi
costruendo classi puoi creare stringhe
in obiettivo-c e promozione usiamo il
stessa classe per l’implementazione così
anche questo è grande perché significa questo
puoi creare classi in stringhe in
Ruby e passali a iOS e loro non lo faranno
è necessaria una conversione in realtà
basato sulla piccola risorsa che noi
fatto a Apple quando stavamo lavorando su a
ponti di linguaggio di programmazione che abbiamo trovato
fuori che la maggior parte del tipo che attraversa
le lingue sono tipi built-in come
array di stringhe e dizionario così facendo
certo che questi tre tipi di edifici sono
basato sullo stesso codice, ne ricava molto
più facile quindi perché vorresti davvero
usa Ruby se puoi già usarlo
obiettivo c bene questo è il ciao base
esempio del mondo in realtà se non lo fai
sapere molto su Ruby questo definisce a
ciao classe dove c’è un costruttore
che accetta ora
argomento e in questo costruttore chiamato
Inizializza impostiamo l’argomento su an
variabile di istanza in modo che at CG sia
in realtà significa specificare un’istanza
variabile e poi c’è un metodo di dire
che può essere usato per mettere ciao cosa e
qui usiamo l’interpolazione delle stringhe che
significa che il valore di ciò che siamo
sostituito sostituiamo effettivamente ciò che è
succede la stringa così vedrai
ciao qualcosa ed è questo è molto
esempio base ciao mondo e lo stesso
il codice in obiettivo-c sarebbe più simile
questo e questo è esattamente la stessa cosa
crea una classe con la proprietà essa
ha un constrictor ha un metodo say
che stampa il contenuto della variabile
e questo è praticamente tutto così noi
potrei dire che il nocciolo di questo molto
è solo una parte importante di questo codice
tre linee tutto il resto è una caldaia
codice boilerplate ti inietta quando vedi tu
devi creare una classe che devi avere
un sacco di codice intorno a ciò che devi avere
due file separati se si vuole fare
le cose nel modo giusto e diventa carina
motore disordinato dove sarà è molto
linguaggio più conciso quindi ti consente
avere applicazioni molto molto breve
di codice uno dei nostri uno dei nostri utenti
ha riferito di tutti questi esistenti
app obiettivo-c in movimento Ruby e lui
ci ha detto che stava per sbarazzarsi di
il sessanta per cento del codice, quindi solo tu
aveva il 30 percento alla fine, quindi qual è
fantastico perché hai meno codice significa
meno errori, quindi scrivi meno codice
è più facile da mantenere, quindi possiamo farlo noi
avere più tempo per giocare ai videogiochi e
questo è anche questo è un interessante
Snippet Stavo parlando del che
Il movimento rubino si basa sull’obiettivo-c
runtime ma ti permette anche di vedere puro
ap è così se lo sviluppatore c di te
probabilmente sanno che sono C non è un
linguaggio dinamico quindi è molto statico così
hai altri file che descrivono il
apx che puoi usare ma è carino
molto su di esso così e questo è un esempio
di reversione utilizzando l’ API OpenGL e
OpenGL è una cornice
disponibili in iOS e molte persone lo usano
per i giochi giusti ma è un puro capolavoro
quindi è solo un insieme di costanti di macro
e funzioni e strutture ma in
goditi la promozione sviluppiamo uno strato
chiamato bridge report che in realtà
analizza l’intero quadro del mare
e generare supporto per la statica 440
compilatore in modo che quando quando in realtà
prova a chiamare la funzione c del compilatore
è abbastanza intelligente da sapere che sta andando
per essere questa funzione c specifica in questo
quadro e sostituirà il codice
con una chiamata diretta alla funzione c così
e questo è fondamentalmente un basic
questa è fondamentalmente una parte di C a
Ruby e la cosa molto divertente è quella
il ragazzo che ha fatto questo ha dimenticato di rimuovere
il punto e virgola è sulle linee che è
in realtà non richiesto sarebbe così così
Puoi e tutte queste cose come per
per esempio il GL clear color è il c
funziona il gr e il punteggio corrente
punteggio prima che il bit del punteggio sia effettivamente a
macro penso macro a qualcosa così tu
posso non avere idea di cosa faccia questo codice
a proposito ma funziona così parliamo
riguardo al compilatore e comunque
questo logo è il logo di llvm
progetto che è il logo più fantastico
mai e sarà il movimento è basato su llvm
quindi è in realtà molto interessante
perché per quanto ne so ogni moto è
la prima implementazione di freebie
è completamente compilato staticamente così
cosa significa che ne hai solo uno
compilazione costruisci così trasformiamo il
Codice rubino in codice macchina e poi
non c’è più più calcolo così
noi non facciamo solo il calcolo nel tempo
non fare l’interpretazione del codice per lo più
perché questi sono praticamente neri
buchi nelle regole delle linee guida così noi
non voglio rovinare con Apple così il
codice che scrivi la tua emozione non può
fare runtime di valutazioni di codice quindi solo noi
compila una volta e usiamo lvm per questo e
Ho intenzione di spiegare un po ‘di
processo di calcolo
quindi per prima cosa iniziamo con la sintassi di Ruby
che è fondamentalmente un testo puro, quindi qui
abbiamo un abbiamo definito l’inferno di te
chiudo che genera da te che vedo
che è una classe iOS definiamo un metodo
e poi chiamiamo il metodo super e
allora preghiamo per fare un disegno personalizzato
roba e guarda il compilatore che facciamo
questo in un ast che è un astratto
albero della sintassi qui sto usando un molto semplice
annotazione ma è fondamentalmente un donatore
modo di destra quindi è davvero enorme
alberi di token e questo è in realtà
molto comune nei linguaggi di programmazione
la maggior parte dei linguaggi di priming anche parser HT
e compilatore e c’è il DST il
il compilatore genererà un intermedio vm
la rappresentazione è così, se lo sai
quello che è in realtà è un insieme di
moduli giusti compilatori quindi è in realtà
molto bello ed è anche un linguaggio per
questi moduli la lingua in uso è IBM
chiamato intermedio intermedio
rappresentazione quindi è una sorta di
linguaggio assembly generico che puoi
puoi effettivamente costruire questo linguaggio e
aveva istruzioni ad esso e poi lì
sono tutti questi moduli lvm che ti permettono
generare codice target qualsiasi
l’architettura di cui hai bisogno per quello stesso
codice specifico in base alla st che
assemblaggio equivalente llvm energia
istruzioni e ne applichiamo anche molte
l’ottimizzazione passa lì così facciamo
metodo inlining facciamo quella rimozione del codice
noi abbiamo sostituito i loop, ne abbiamo persino uno
musicista dipendente appt a fare una coda
eliminazione corticale quindi ha il tuo
corretto codice funzionale in Ruby che è
bello e dopo che possiamo solo target
possiamo scegliere come target l’assemblaggio per il corretto
architettura e il supporto a fino a
due architetture intere a 32 bit che è
richiesto per il simulatore e poi noi
avere diverse architetture per questo
diverso è l’hardware con il braccio
armbrister 6v set e abbiamo impostato come nuovo
architettura iphone 5 e basata su
assemblaggio possiamo quindi ottenere un codice macchina
che sembra niente ma nessuno è
andando a guardare il codice della macchina
così via così questa diapositiva è che la ricordo così
su così questa è un’applicazione chiamata
mustachio che ho scritto con un amico di
il mio è probabile che sarà il primo
app di movimento in realtà l’ abbiamo scritto
assicurati che la mela approverà
applicazioni commerciali quindi è in realtà
una semplice app che usa usa cover
immagine per rilevare i volti all’interno dell’immagine
oops mi dispiace che tu abbia scelto questa immagine di copertina
per rilevare i volti e poi su ogni faccia
a un certo punto, ma lo collega
crescerebbe i baffi secondo il
per i ragazzi faccia ed è davvero molto
interessante così è stata la fonte del codice
Github a proposito dovrebbe digitare il mustachio
sarai in grado di vederlo ma il
l’applicazione è stata rimossa da Apple
dato che ci siamo dimenticati di rinnovare il mio
Account Apple Developer quindi non lo ero
consapevole che eliminerebbero il tuo
le applicazioni che sono piuttosto brutte ascoltano
tu una e-mail vuoi rinnovare la tua
icona ho detto bene no vorrei creare un nuovo
uno ma ho dimenticato che avrebbero rimosso
l’app in ogni caso quindi è molto
semplice app e il ragazzo nel
lo screenshot è mio figlio , ma che cosa
è davvero ciò che è interessante qui è il
dimensione dell’applicazione non sono sicuro se
puoi vederlo ma la dimensione dell’app
è il megabyte redline quindi questo è quello che
Voglio davvero incontrare la diapositiva
il sovraccarico di runtime in una versione in rubino
l’app è molto meno di un megabyte
eccolo qui alle nove in qualche modo
di compressione quindi è molto carino così
è il compilatore genera una bella
molto codice molto ottimizzato ma davvero
cerca di assicurarti che il finale
l’eseguibile sarà il più breve possibile
e abbiamo lavorato per ridurre
le buone dimensioni di 300k in meno, ma è
ancora super distorcendo e anche questo
molto diverso dagli altri sviluppi
piattaforme che hanno messo quell’annuncio per il suo
intendevo un morso sulla tua applicazione e
è se penso che se ne andrai oltre i dodici
megabyte che non puoi usare puoi
scaricare applicazioni da reti 3G
più così può
un problema quindi qui ci riproviamo per essere sicuri
il confronto sta generando un brevissimo
codice ora ho intenzione di parlare un po ‘
la catena di strumenti così la vera emozione
catena è basata sul terminale così tu
usa il terminale per tutto e tu
utilizzare il terminale per creare un progetto e
il progetto è fondamentalmente un elenco di
un’attività del settore esiste un file reg
se non sai molto su Ray puoi farlo
trascinare i file reg è davvero equivalente
di fare il mare sulla base di intendo di solito
make è usato per i programmi C e il rake è
il migliore è il sistema di costruzione di fatto di
Ruby e un progetto di movimento del nastro è
fondamentalmente un file reg che ha tre
linee di codice per impostazione predefinita perché il
intera configurazione del progetto come predefinita
valori in modo da poter personalizzare tutto
in là nel file reg ma per impostazione predefinita
come valori di default sensibili e il reg
il file ha anche un sacco di compiti che tu
può usare dalla riga di comando per a giocare
con il progetto e i tre più
compiti importanti sono il compito del simulatore
che è anche quello predefinito che lo farà
invia l’applicazione sul simulatore
c’è un test del dispositivo che lo farà
effettivamente inviare l’applicazione sul tuo
dispositivo e puoi anche avviare il
applicazione subito vedi se vuoi
per vedere immediatamente l’applicazione
in esecuzione sul dispositivo e finalmente lì
è un test di distribuzione dell’archivio che lo farà
generare un file IPA adatto per l’app
Conserva una distribuzione da due settimane
fa abbiamo aggiunto un’emozione di supporto al forno
quindi questo è molto eccitante se una misura se
voi ragazzi sapete che il nostro nanismo è un
formato di dybbuk per il tuo originale
scritto per programmi basati sul mare in modo che
ti consente di aggiungere contesto per informazioni
sul tuo codice sorgente per
soprattutto per i debugger e noi
in realtà supporto da dove sei
il compilatore lo sa quando quando tu
compilare quando siamo in grado di acquistare veramente codificato per
codice macchina questo codice macchina come
grande informazione subito quindi significa
che sappiamo per esempio che a questo
stiamo parlando di qualcosa di molto specifico
questo sarà metodo e questo file e
questa linea così è ray voi
44 e quando per esempio si ottiene il
schiacciato sollevare sarebbe moto app noi
può sapere e i dati si incrociano
il file di informazioni online del tuo
progetto e per quanto ne sappiamo siamo noi
sono l’ unica altezza di un linguaggio che
supporto nano e usiamo il wii u possibile
Collega il tuo debugger qui usiamo gdb ma
possiamo passare a lgb più tardi e preghiamo
scrivi meglio è il più grande in futuro
ma puoi toccare con il Dybbuk in giro
sia il simulatore che il dispositivo tu
puoi impostare i breakpoint e puoi aspettarti
praticamente tutto dentro
debugger e questo è solo uno screenshot
di una sessione di debug qui possiamo noi
può effettivamente impostare un punto di interruzione su
da qualche parte nel file di rubini, allora possiamo
possiamo continuare il programma e poi esso
pause sul punto di rottura, naturalmente e
se scrivo BTW che stampa il file
back-trace puoi vedere la prima linea come
informazioni sul nome del metodo e
quindi il file e la linea, quindi è così
in realtà molto molto molto utile un altro
quello che facciamo è che facciamo test e
rapporti con un po ‘di pancetta malata
che è una struttura R come framework così
ti permette di scrivere un test usando un inglese
come la lingua quindi è come una sorta di dsl
per il test ed è anche integrato
con il ciclo di corsa United che significa
che tutti i test saranno eseguiti quando
l’applicazione inizia e questo tipo di
cose e viene fornito con un funzionale
strato di prova che è il più importante
parte della parte di test in modo che tu possa
scrivere test funzionali come ad esempio
tocca questo pulsante per ottenere il campo di testo di
questo ottiene il valore di questo campo di testo
e i suoi versi così puoi scrivere carina
test poco elaborati per la tua app e
puoi anche usare un test guidato
sviluppo con le tue emozioni e questo
questo livello si basa sull’automazione dell’interfaccia utente
che è un framework per cui Apple usa
test ma alla differenza che aggiungono
su tutto il giorno ti costringono a usare
JavaScript per scrivere i tuoi test perché
non puoi davvero usare l’obiettivo c giusto
prova è troppo basso, ma anche noi
non voglio usare javascript perché noi
già ho davvero così ti lascia scrivere
ti permette di usarlo ancora emissioni da
rudy
che è molto meglio di JavaScript e
questo è un frammento di un test che usa il
questa nuova prova è così che possiamo vedere
che si legge come l’inglese giusto
descrivere il controller della vista del timer
test testiamo questo controllo molto specifico
poi come farebbe un timer e poi noi
fare test lì così dovrebbe essere
un amichevole per gli sviluppatori, quindi non lo facciamo
questo è così, voi ragazzi riconoscete cosa
questa è la competenza di Xcode
adulti e noi non supportiamo Xcode
per impostazione predefinita in movimento Aruba prima perché
xcode è un editor pessimo per lo sarà
e anche per altre lingue ecc
la delusione è che è molto brutto per a
un po ‘così male che se usi un normale
espressione dentro di te codice il
parser sarà effettivamente se si utilizza a
parola chiave riservata all’interno del normale
espressione inizierà l’analisi del
resto del file mi dispiace e comunque così e
il primo è quello di xcode è in un primo momento
è gestito da Apple e si rompe a
molto tempo per cui non vogliamo fare affidamento
questo e anche rick scott è molto magico
quindi se hai usato xcode lo sai
con cui puoi creare un’interfaccia utente
generatore di interfacce e che ti permette
crea tu ti auguro il tuo mouse e poi se
fai clic da qualche altra parte ti rompi
qualcosa e poi puoi anche creare
modelli di dati di base che è il database di
iOS con il mouse ma non lo facciamo davvero
in questo modo è davvero fantastico
per obiettivo-c perché obiettivi
è noioso se vuoi fare cose
programmaticamente può diventare molto fastidioso
ma in realtà è così semplice e in
rivedere rilasciare il grande linguaggio giusto
strati di astrazione anche chiamati
lingue specifiche del dominio, così siamo
prendendo un approccio diverso qui e noi
preferisco che le persone facciano tutto
programmaticamente così senza usare il
mouse e magia ma in Ruby il codice può
sii molto più breve quindi ti mostrerò questo
più tardi e non sarebbe un vero swinger
codice di alex senza il
l’incidente sto scherzando, quindi puoi usare
il tuo demotion editoriale preferito e
personalmente ho spostato l’utente quindi è così
il miglior editor in assoluto, ma anche le persone lo usano
una notte di testo o il testo recente sublime
2 auto rossa è un è molto interessante
editor è tutto scritto in Ruby usando
l’implementazione GV e hanno a
molto bella integrazione con le tue emozioni
quindi puoi creare un progetto da
macchina rossa a pranzo per simulare o il
compilatore tutto funziona è davvero
fantastico e c’è anche un massimo che è
una sorta di sistema operativo che puoi
usa Emacs anche se ti piace davvero
come il rubino il mio è in realtà
lavorando con i difetti di JetBrains che
sono persone molto simpatiche, a proposito e noi
stanno lavorando per aggiungere la versione rubino
sostenere o non rubare il mio così potrebbe
vieni dopo, quindi se sei interessato
a questo proposito dovresti seguire il loro sangue
correttamente e ci sarà un
annuncio ma molto interessante
circa sarà mio è quello che fornisce
il completamento automatico dell’AP di iOS è da a
prospettiva contestuale quindi ne ho fatti alcuni
screenshot della prima beta S & P qui
se digiti solo la tua finestra io
loggato ti suggerirà il
suggerimento con il metodo frame perché è
in realtà un metodo se qualcuno di voi ha te
ma tu I window è una sottoclasse di UI
visualizzare in modo da poter selezionare questo questo
suggerimento che possiamo continuare a camminare voi
è necessario fornire un rettangolo per questo
Metodo come argomento in modo da iniziare con
il metodo di schermo dell’interfaccia utente e poi esso
ti suggerisce di ottenere la schermata principale
che è esattamente quello che vuoi tu
tieni e poi ti suggerisce di tornare
il metodo dei limiti e l’uso del paraurti
metodo con restituire il rettangolo Rick
giusto per questa finestra, quindi qui ci provo
che stamattina, a proposito, è così
fottutamente fantastico, quindi penso una volta
questo sarà disponibile questo lo farà
la vita dello sviluppatore di promozione in molto
Più facile
ora parliamo un po ‘di
speranza di movimento nastro della comunità che era
a proposito veloce e l’ultima volta guardo
ci sono circa 500 progetti su github
per lo più o librerie o un codice di esempio ma
anche questo editor supporta tutti questi
il supporto degli editor è fondamentalmente open source
e la comunità che gestisce il movimento di Ruby
è cresciuto così velocemente il primo il primo
due settimane che il presente progetto era
rilasciato abbiamo avuto migliaia di
gli sviluppatori che si uniscono e acquistano e
usando la piattaforma quindi è davvero molto
molto molto grande quindi seleziono solo alcuni
il progetto da mostrare mostra che oggi è TCAP
in realtà un bel progetto che ti lascia
è un DSL per uno scrivere te, ma è così
usa la convenzione CSS nel senso
che scrivi la presentazione
stile dalla presentazione così qui noi
puoi effettivamente creare creare qualche tipo
di un oggetto di stile di stile che lo farà
contenere il layout del tema della
i tuoi widget come ad esempio il testo
i campi sono una barra di ricerca o pulsanti e
allora puoi applicare questo foglio di marea a a
controller di visualizzazione specifico e così e tutti
gli elementi su questo controllo che usiamo
la squadra specifica quindi può essere molto
interessante e questo è molto meglio di
usare l’ iacp è un involucro di bolle è un
anche un progetto interessante è un it’s a
progetto molto interessante che fornisce a
è un sacco di piccoli involucri intorno a djuice
AP è così qui per esempio il rosso di
il metodo di post HTTP bubble wrap come
fai HTTP POST e se vuoi farlo
questo a livello di programmazione è necessario utilizzare a
non ricordo nemmeno il nome del
classe ma è come 10 linee di codice
qui in una sola riga e passi a
blocco e hai il tuo HTTP POST
richiesta che è fantastica e poi tu
puoi usare l’adiacente a questo rapper JSON
analizzare e generare anche Jason così
questa è la bella formulazione che ti lascia
costruisci il tipo di vista che vedi
il diritto usando un hash così è
estremamente utile se hai fatto
un po ‘di sviluppo iOS probabilmente
sappi che facendo questo tu programma a
è molto molto complicato è una specie di
del tuo tavolo, puoi scusarti
essere molto noioso e qui è solo
un hash che si passa a un’API e
hai finito, quindi non sono sicuro del motivo per cui vuoi
per fare questo programmatico no e parti
la madre è un progetto interessante è a
è un involucro per le barre calmo e
servizio in modo che parte venga se si nomina
è una sorta di dati sul valore della chiave remota
memorizzare che è possibile utilizzare come back – end
della tua applicazione in modo da poter impostare
valuta il cloud e ottiene valori dal
nuvola e ed e questa è una rivelazione
involucro per esso così sembra un po ‘come
record attivo se si sa se usato
gara puoi definire una classe quindi puoi
dì che in realtà sarà un
modello per le parti, quindi è possibile impostare il
campi e poi una volta creato il post
una volta che si preme il metodo di salvataggio lo farà
salva l’oggetto nella rete allora tu
puoi recuperarlo più tardi così è in realtà
carino e sì, l’ultimo progetto
volevo mostrarti lo stato del movimento
progetto di macchina che ti consente di scrivere
macchine di stato in movimento Ruby così
onestamente questa è la cosa del Mac, così ho
non ho idea di cosa faccia questo codice, ma è così
in realtà così puoi effettivamente crearne uno
stato macchina e collegarlo al è
Evan loop in modo che quando la notifica
arriva può entrare in uno stato diverso
nella macchina ma ciò che è molto
interessante è che l’intero
la libreria è in realtà basata su gcd grand
la spedizione centralizzata GCD è la concorrenza
libreria che altre navi con iOS e
anche come 10 e il movimento Ruby fornisce a
wrapper per gcd ma non è eccezionale
e tutto questo è tutto basato su
tricity quindi tutte le callback sono
sincrono saranno concomitanti
e la rivoluzione di Ruby è anche una novità
implementazione di preposizione di veramente
questo non ha un interprete globale
bloccare così tutto può essere eseguito
in concomitanza quindi penso che questo sia
andare sarà molto
progetto interessante in quelli futuri
I dispositivi iOS ottengono più core della CPU e io
ti mostrerà un duo di una promozione
quindi iniziamo iniziamo con a
nuovo progetto quindi dovremo solo andare su TMP ok
e creiamo solo un nuovo progetto chiamato
ciao e come puoi vedere ha creato a
mazzo di file ciao reg file è il
configurazione del progetto quindi hai questo
directory app che per impostazione predefinita è un combattimento
allora hai una risorsa che è vuota
questa directory dovrebbe contenere tutto il
immagine e suono e fondi in qualsiasi cosa
tutti i file di risorse che il tuo
l’applicazione richiede il runtime e quindi il
la directory spec contiene il test per
replica quindi se vuoi farlo
è possibile iniziare lo sviluppo basato su test
proprio qui e scrivi il test e se io
interject renate una rottura sta per
compilare il mio oh questo è vero che sta per
limitare la mia applicazione e quindi eseguirla
sul simulatore oops qui andiamo così
l’ammiratore è piuttosto lento oggi, quindi non lo faccio
sapere cosa sta succedendo, ma abbiamo un umido
l’applicazione in esecuzione qui ed è a
finestra vuota quindi perché è vuoto perché
per impostazione predefinita non generiamo molto codice
se controllo il se ti mostro il
metodo di delega dell’applicazione che puoi vedere
che è solo un metodo di base
ritorna vero, quindi non coincidiamo qui
quindi, cosa posso fare di nuovo, posso iniziare
Posso creare una vista di errore che posso mostrare
loro possono impostare il messaggio per l’ inferno
tu ed io possiamo quindi eseguire la recensione di Randy allora
se digito di nuovo una pausa
oops cosa sta succedendo qui
da quando abbiamo aggiornato Xcode sì sì
o ciao vai qui da noi, capacità
per xcode quattro prendiamo il simile
il tour impiega tre secondi per imparare
non sono sicuro di cosa sta succedendo qui e
quindi questo è fondamentalmente ricompensa e ora
Ti mostrerò un più interessante
esempio ti mostrerò che il
applicazione del timer è uno dei
primi campioni che abbiamo costruito con rubino
movimento che attacca un sacco di tempo per iniziare
il simulatore a posto ci andiamo quindi questo
è un’app molto semplice e ha un’etichetta
un pulsante una volta si fa clic sul pulsante il suo
avvia questo timer e quando lo interrompi
si ferma molto semplice quassù
interessante è che si può vedere che
con un’onda una richiesta qui è in realtà
ciò che chiamiamo ondulazione ed è a
console veramente interattiva dove possiamo
digita espressioni e queste espressioni
sarà compilato utilizzando il tempo di vestizione
calcolo e quindi inviato al
applicazione utilizzando una pipe unix e poi
eseguilo in un interno dentro il
domanda presentata in modo da poterlo fare
istruisca l’introspezione che possiamo introspettare
tutto nell’applicazione utilizzando a
riga di comando quindi questo può essere molto utile
specialmente quando hai a che fare con un nucleo
dati in cui puoi introspettare il contenuto
l’applicazione in esecuzione e un molto
la caratteristica interessante dell’emozione reale è
che ti lascia se mantengo il
comando e quindi spostare il mouse sopra
il simulatore come puoi vedere posso farlo
vedere le viste all’interno del simulatore e
per esempio se sento che seleziono il principale
guarda e se clicco su di esso la shell è I
ottenere un guscio indietro ma il contestuale
l’oggetto è ora questo uiview specifico se io
tipo self self diventa la visualizzazione dell’interfaccia utente di
questa è la vista che ho selezionato così posso
prigione come per il colore di sfondo e
dice Neil perché non c’è colore
ma posso posso assegnare
a un nuovo colore vero oh non c’è ah
questo è un grande obiettivo come questo e di nuovo
Posso sostanzialmente cambiare l’applicazione
in fase di esecuzione sì, questo è qualcosa che tu
non può davvero fare in obiettivo-c è molto
complicato e puoi farlo puoi usare
questo anche per lo sviluppo rapido per
istanza puoi iniziare il tuo codice che puoi
posiziona i widget ma non lo sai davvero
dove dovrebbero andare, ad esempio, io
posso selezionare il mio lavoro qui posso controllare
la cornice dei suoi ventiduemila va bene
quindi posso impostare la cornice su qualcosa
diverso come
come questo
puoi vederlo muoversi un po ‘più in basso
in alto posso sostanzialmente riposizionare il mio widget
quindi questo può essere molto interessante ora
vorrei mostrarti il debugger così
se digito break con il comando back
uno inizia al più grande e poi a noi
stanno correndo dentro l’hamburger e
tipicamente l’applicazione è in esecuzione che posso
in ogni momento pausa e poi posso vendere
incinta se voglio fissare un breakpoint
al controller del timer come puoi vedere io
basta usare lo spazio delle schede e lo sa
c’è questo file nel progetto che posso
interruzione sulla linea 32 per esempio che è un
ok, non lo so, vediamo prima
oops
sai qual è il modo migliore per farlo
fare un errore nel codice, quindi se vado
qui e tutti da quando sono qui
invalido Ho intenzione di rimuoverne uno
lettera I salva il file ora se lo eseguo
all’interno del debugger è questo il problema
che verrebbe chiamato quando il pulsante è
cliccato così qui sono in esecuzione e lo è
lavorando perché ho anche cliccato se io
click boom clicco la seconda volta e
si rompe qui in modo che si rompa quando si alza
un’eccezione quindi se chiedo il
back-trace questa è la traccia posteriore dove
l’eccezione è sollevata e possiamo vedere
che stiamo attivando il metodo mancante
che è davvero un’eccezione ma qui noi
sappi che siamo davvero qui in tempo
dove culturale 25 26 che è dove il
l’eccezione è sollevata quindi se vado a questo
linea questo è esattamente dove siamo così noi
sappi che è qui che la borsa è così io
può cambiare una linea e lavorare qui e
da qui posso selezionare il fotogramma
sette e ora sono nel codice Ruby che posso
Posso stampare il codice Ruby e posso anche
vedere l’introspezione cosa succede se io
tag se controllo per il possibile controllare il
oggetto timer che crea il proprietario o
perché è stato invalidato
sì perché è qui sì, comunque
debugger è bello perché puoi
in realtà vedi che puoi effettivamente impostare
i punti di interruzione controllano le variabili e il
l’ultima cosa che volevo mostrarti è la
quadro delle speculazioni quindi in questo esempio noi
avere un sacco di specifiche che abbiamo scritto così
abbiamo scritto le specifiche dopo il codice così
non sta seguendo un test guidato
sviluppo ma puoi scrivere le specifiche
prima se senti che puoi dormire
meglio di notte e alcuni sto solo andando
per eseguire le specifiche prima, quindi dovresti
premere indietro per ricostruire il
applicazione per
carico di specifiche che poi costruirà
la libreria delle specifiche quindi solo una volta
e poi ricomincia a guardare
è necessario che esistano effettivamente con zero
zero e zero errori quindi ha eseguito tutti questi
forza tutte queste quattro specifiche così
non puoi davvero automatizzare puoi farlo tu
può automatizzare la tua applicazione in questo modo
in realtà molto bello se io se mostro il
codice sorgente puoi vedere che è qui io
Posso toccare il pulsante di avvio che aspetto
un secondo poi tocco il pulsante stop quindi
qui controlliamo se il testo dell’etichetta
è sotto uno e anche prima che significa
che in realtà avrebbe dovuto aspettare uno
secondo, in modo che tu possa effettivamente scrivere molto
bella serie di test intorno al tuo
applicazioni e sì penso che
dovrebbe esserlo se avete domande
o se vuoi vedere qualcosa di più lascia
io torno alle diapositive e sì
sì sì così così è la gestione della memoria
a è lo stesso dell’arco in inclinazione, così facciamo
non è necessario preoccuparsi di mantenere e
rilascio intendo che non hai bisogno di contare
pensare con 10 conta un calo
l’oceano in modo che il tempo di esecuzione sarà a
rilascio proprietario e conservare il tuo
oggetti e lo facciamo in fase di runtime così
tranne che arctos è un tempo di calcolo
quindi è praticamente come ci si sente come
raccolta dei rifiuti ma non è vero
raccolta dei rifiuti, nel senso che il
oggetti siamo rilasciati solo quando il
la puleggia di rilascio automatica più vicina è stata distrutta così
la montatura è davvero basata sul
stesse classi di memoria e obiettivo C sì
si si
sì sì così puoi così ho anche
ne ho parlato ma puoi integrarti
qualsiasi libreria di terze parti quindi è molto
facile puoi farlo in due modi per prima cosa no
i primi modi per farlo manualmente così tu
può incorporare il progetto Xcode all’interno del tuo
applicazione e le seconde modalità di utilizzo
baccelli di cacao e ci integriamo con il cacao
i pod e, in effetti, il ragazzo che lo fa
il pass di cocco è in realtà un mio amico
quindi cerchiamo di assicurarci che sia così
funziona alla grande con la reversione, sì sì
e se non sai cosa baccello di cacao
afferrato dal modo in cui è una sorta di
gestione dei pacchetti per obiettivo-c
librerie quindi è davvero molto bello e
in movimento Ruby puoi cancellarlo ma
per un quadro specifico e funziona
grazie
sì sì eh sì sì, per esempio, così
in questo momento l’intero cambiamento è aperto
fonte tranne il compilatore e il
runtime quindi il tutto il tutto
roba da riga di comando è open source quindi
le persone possono aggiungere attaccare il codice sorgente
e ma il tempo di affitto e il compilatore
è ancora un proprietario e bettia così noi
in realtà apriamo il resto del
codice i mesi dopo durante il pranzo
perché molte persone chiedono di chiederlo sì
non funziona sul dispositivo eppure no
non funziona ancora sul dispositivo ma tu
sì sì sì è possibile sì ma il
solo in realtà è felice di essersi connesso
difficile perché noi bene è difficile per a
dal punto di vista tecnico usiamo un TlV I’m
solo io sono un compilatore nel ripple e tu
non è possibile utilizzare la tua certa popolazione
perché non ti consente di contrassegnare la memoria
pagina come eseguibile, ma ci proveremo
trova un modo per lavorarci , ma è solo
per lo sviluppo quindi cosa non serve
per sapere altre domande si, si
sì così adesso non abbiamo davvero guardato
così tu sai che puoi farlo tu
puoi usare gli strumenti che hanno X ottenuto a
profiler su applicazioni di movimento Ruby e lo farà
lavora Marius Marius fuori dalla scatola
perché prima perché abbiamo obiettivi Ruby
Il movimento rubino obietta il nostro obiettivo c
oggetti in modo da poter vedere il primo come te
puoi vedere tutto il tuo audio direttamente
in fase di creazione puoi vedere il nome e
il nome corrisponde alla classe Ruby
così funziona e anche quando tu quando tu
ottenere una traccia di chiamata per ogni assegnazione
assegnazione di oggetti perché supportiamo il
roba nano stavo parlando significa
che puoi vedere dove si trova nel codice Ruby
questo soggetto è stato creato in questo modo
funziona se tu puoi usare lo strumento I.
pensa ma il primo è quello strumento
è praticamente utilizzabile a Miami
non puoi davvero usarlo per un grande
l’applicazione diventa molto lenta e um I’m
Non sono sicuro se lo vuoi davvero usare
e ma quello che vorremmo fare è
scrivere il nostro profilo ad un certo punto
che sarà anche il livello più alto
perché davvero persone davvero diverse
voglio sapere di molti oggetti e
tracce e cose del genere è come
il debugger è il debugger adesso
molto molto caricato voglio dire che devi sapere
gdb ed entrambe le razze supportate e cose e
in realtà i rapporti non sono belli
familiarità con ciò, quindi vogliamo costruire un
più in alto sui dati che Ryan ha dimenticato di fare
menzioniamo anche noi i vassoi
ci sono sonde dtrace in the
runtime in modo da poter eseguire eccezioni di traccia
messaggi oggetto allocazioni tipo di
cose che possono essere usate anche per profilare
per esempio cosa sta succedendo quando tu
quando è in un ciclo infinito sì 11
posizione sì
sì, questa è la caratteristica numero uno
richiesta quindi sì, siamo noi
considerando di farlo ma preferisco non farlo
parlarne fino a quando non è giù così così noi
non voglio che sia preferibile sì, lo sappiamo
che molte persone volevano, così siamo
piuttosto di andare a guardare dentro lasciare che un tempo
sarà disponibile ti faremo uno
annuncio forse altre domande
sì
okay okay sì bene, quindi penso ci
sono due due grandi vincoli il primo
uno è il male puoi usare il male con a
stringa e il secondo è quello
dice che è davvero compilato staticamente
quindi il metodo require non funziona
rivoluzione è necessario fornire tutto il
file al momento e questi sono i due
grandi vincoli per quanto ne so tu
puoi usare tutto il resto così il primo
costruito non abbiamo supportato il metodo define
ma lo aggiustiamo così sono così evoluto con
la stringa e richiedono che non lo siano
andando a lavorare in qualsiasi momento presto penso di più
le domande non lo colpiscono bene, grazie
molto
Please follow and like us: