Elementi di C# 1.0
Delegati ed eventi. Eccezioni. Enumeratori.
Elementi di C# 2.0
Static Classes. Generics e collezioni generiche.Nullable Types. Partial Types e Partial Classes. Anonymous Methods.Iteratori,
Elementi di C# 3.0
Auto-implemented properties.Object Initializers e Collection Initializers. Implicit Typed Variables. Anonymous Types.Extension Methods. Lambda Expression.
Elementi di C# 1.0
Delegati ed eventi. Eccezioni. Enumeratori.
Elementi di C# 2.0
Static Classes. Generics e collezioni generiche.Nullable Types. Partial Types e Partial Classes. Anonymous Methods.Iteratori,
Elementi di C# 3.0
Auto-implemented properties.Object Initializers e Collection Initializers. Implicit Typed Variables. Anonymous Types.Extension Methods. Lambda Expression.
Il Corso Programmazione Java Base di K-Tech (http://www.k-tech.it) ha come obiettivo quello di far comprendere le tecniche di programmazione orientata agli oggetti, cioè di modellare e “pensare” a oggetti, di trasmettere i concetti base del linguaggio e le basi per sviluppare piccole applicazioni in modo autonomo.
Il corso Programmazione Java Base è composto da dodici moduli:
1. Introduzione
2. Ciclo di sviluppo
3. Sintassi Elementare
4. Principi OOP
5. Classi e Oggetti
6. Concetti Object Oriented
7. Collections
8. Eccezioni
9. Input Output
10. Serialization
11. Unit Testing
12. Threads
Leggi il programma completo: http://www.k-tech.it/formazione/catalogo/programmazione_java_base
Il Corso Programmazione Java Base di K-Tech (http://www.k-tech.it) ha come obiettivo quello di far comprendere le tecniche di programmazione orientata agli oggetti, cioè di modellare e “pensare” a oggetti, di trasmettere i concetti base del linguaggio e le basi per sviluppare piccole applicazioni in modo autonomo.
Il corso Programmazione Java Base è composto da dodici moduli:
1. Introduzione
2. Ciclo di sviluppo
3. Sintassi Elementare
4. Principi OOP
5. Classi e Oggetti
6. Concetti Object Oriented
7. Collections
8. Eccezioni
9. Input Output
10. Serialization
11. Unit Testing
12. Threads
Leggi il programma completo: http://www.k-tech.it/formazione/catalogo/programmazione_java_base
Foto fatte durante la visita del museo dedicato alla Ferrari a Maranello, vicino a Modena. Pieno di auto da corsa, motori e spiegazioni della casa automobilistica più famosa del mondo.
Corporate strategy analysis of Samsung Electonics referring to:
- vision, goals
- business strategy
- Quantative/Qualitative Business MAtrix Analysis
- strategic resources analysis
- financial index
- Best alternative analysis of Medical Devices Business
Come sviluppare app native per iOS a partire dal suo IDE di sviluppo Xcode per proseguire con un tutorial completo per realizzare una piccola rubrica di contatti.
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitMaurizio Delmonte
Direzioni fondamentali per entrare rapidamente nella comprensione di Plone e del suo mondo, e costruire il vostro sistema di gestione contenuti in capo a pochi giorni.
co-authors: Scola Davide and Maia Nicoletta
Small workshop on Inferno, Limbo and the Dis virtual machine.
Inferno is a new operative system developped for creation and support of network systems and distribuited services.
There are three fundamental programming principles: all resources are files in a hierarchic file system, the network is a unic namespace like a file system hierarchic, it uses Styx that is a standard protocol of comunication for local and remote resources.
Limbo is the programming language for the Inferno OS.
The language is Object Based, you can compile it or interpret it with the Dis virtual machine (like Java virtual machine with a JIT compiler).
Limbo has a native support for: array, string, int, float, tuple (like record), channel (linda-like), and other...
The Limbo's channels are used to comunicate with other processes or with thread.
The Dis virtual machine is an environment for Limbo programs and it has important features: CISC architecture, memory-to-memory, many high level types, just in time compiler, ecc...
In the end of presentation there is a comparison between Dis, Java VM and C# .Net VM.
Quando si scrivono i test, la corretta gestione delle dipendenze (Dependency Injection) è uno degli aspetti più rilevanti e molte volte le best practices per l’utilizzo di un Dependency injector ed una libreria di Mocking sono le stesse.
In questa presentazione si cerca di capire quando un Dependency injector rappresenta un Anti-pattern e quando invece diventa un valido strumento professionale per risparmiare tempo, ridurre gli errori, scrivere meno codice e rendere l’applicazione molto flessibile.
Tutto questo però senza sacrificare il design dei nostri oggetti e legarci in modo indissolubile ad un framework.
OpenOffice.org non è solo la principale suite di applicazioni per l'ufficio completamente libera e basata su open standard (OpenDocument è standard ISO), ma può trasformarsi in una potente piattaforma per applicazioni document-based programmabile via Java.
In questa presentazione esploreremo le potenzialità del connubio fra OpenOffice.org e Java tramite alcuni esempi applicativi. In particolare vedremo la possibilità di eseguire script nei linguaggi basati su JVM come BeanShell e Jython, l'esecuzione remota da applicazioni Java esterne di funzioni di OpenOffice.org lanciato in modalità server, e i diversi punti di aggancio per estendere le funzionalità della suite dall'interno tramite componenti Java custom.
Vedremo infine la nuova applicazione Base presente in OpenOffice.org 2.0 per l'accesso a sorgenti dati JDBC.
2. INIZIAMO!
• Introduzione
• Programma
• Strumenti di Sviluppo
• Tecniche di Sviluppo
martedì 18 ottobre 2011
3. INTRODUZIONE: CHI SIAMO
• MobileSchool •
Diffondiamo la cultura mobile in Italia organizzando
corsi su come realizzare applicazioni per iPhone iOS e
Android eseminari invitando a condividere l’esperienza
di chi ha già lanciato una startup mobile.
• Francesco Lo Truglio
Sviluppatore Senior esperto in tecnologie Web e Mobile.
Per l’occasione il vostro Docente!
• Xcode
L’ambiente di sviluppo su cui lavoreremo e il nostro
principale nemico/alleato durante tutte le fasi dello
Sviluppo!
• Iphone
Melafonino o surrugato di tecnologia, l’oggetto che
vogliamo conquistare con le app che impareremo a
sviluppare.
martedì 18 ottobre 2011
4. PROGRAMMA DI OGGI
• Introduzione alla Programmazione
• Cenni di Objective-C
• L’ambiente di Lavoro (pre)
• Break [10,30]
• XCode
• Interface Builder
• Break [13,00]
• Interfaccia Utente (MVC)
• La nostra prima Applicazione
• UIScroll View/UITableView
martedì 18 ottobre 2011
5. OBJECTIVE -C
Objective-C è il principale linguaggio di
programmazione che si utilizza per creare applicazioni
per OSX.
E' la base da apprendere per utilizzare le librerie
(framework) che Apple mette a disposizione e che
consentono lo sviluppo di applicazioni su:
• OSX
• iPhone
• iPodTouch
martedì 18 ottobre 2011
6. OBJECTIVE C
E' un linguaggio di programmazione ad oggetti (OOP)
molto simile a altri linguaggi come Java o C++.
Le tecniche di OOP seppure utili verranno spiegate
durante il corso, per soffermarci più sul lato pratico. Il
Nostro scopo e fornirvi gli strumenti per iniziare
immediatamente a sviluppare!
martedì 18 ottobre 2011
7. OBJECTIVE C: CENNI SUGLI OGGETTI
CLASSI e OGGETTI sono elementi astratti che permettono di
rappresentare oggetti reali (o immaginari) in oggetti software.
Ogni Oggetto appartiene a una Classe e i nostri
programmi saranno un insieme di oggetti che dialogano
tra loro inviandosi messaggi e ricevendo risposte
attraverso metodi e funzioni.
martedì 18 ottobre 2011
8. OBJECTIVE C: LA PRIMA CLASSE
In Objective-C per definire un oggetto, quindi la classe cui
esso appartiene, abbiamo bisogno di due file:
• uno (.h) che definisce l'interfaccia della classe
• l'altro (.m) che ne definisce l'implementazione
L'interfaccia descrive le azioni (i metodi e funzioni) della
classe e nasconde l'implementazione che definisce il
codice vero e proprio, ovvero ciò che le azioni realmente
eseguono.
martedì 18 ottobre 2011
9. OBJECTIVE C: ESEMPIO DI INTERFACCIA
Un Esempio di Intefaccia (fclass.h)
dichiarazione di interfaccia classe di appartenenza
@interface FClass : NSObject {
nome della classe - int variabile; variabili di classe
- bool variabile2;
}
- (void)Metodo;
metodi (azioni) esposti
@end
martedì 18 ottobre 2011
10. OBJECTIVE C: ESEMPIO DI IMPLEMENTAZIONE
Un Esempio di Implementazione (fclass.m)
interfaccia da implementare
#import "FClass.h"
@implementation FClass
implementazione della classe
- (void) Metodo {
// commento: ...
}
implementazione dei metodi
@end
martedì 18 ottobre 2011
11. OBJECTIVE C: I METODI
Struttura di un metodo:
- (void) Metodo;
tipologia di metodo tipo di risultato nome del metodo
(- di istanza) (void nessun risultato)
(+ di classe)
I metodi possono ricevere dati:
- (bool) maggioredi:(int)num1 compara:(int)num2;
tipo argomento nome argomento
nome argomento metodo
nome argomento esposto
martedì 18 ottobre 2011
12. OBJECTIVE C:PROPRIETÀ
Le variabili, possono essere lette e/o modificate da chi
utilizza le nostre classi, per far questo le nostre variabili
dovranno diventare proprietà e fornire dei metodi
specifici (getter/setter).
Objective-C può generare automaticamente questi
metodi attraverso l'utilizzo delle keyword @properties e
@synthesize.
martedì 18 ottobre 2011
13. OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili
vogliamo creare i getter e setter:
@interface FClass : NSObject {
Gli accessori
- int numero; definiscono il
accessori della
comportamento
proprietà
dei metodi di Get
} e Set
@properties (retain) int numero;
- (void)Metodo;
@end
martedì 18 ottobre 2011
14. OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili
vogliamo creare i getter e setter:
@interface FClass : NSObject {
Gli accessori
- int numero; definiscono il
accessori della
comportamento
proprietà
dei metodi di Get
} e Set
@properties (retain) int numero;
- (void)Metodo;
@end
martedì 18 ottobre 2011
15. OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili
vogliamo creare i getter e setter:
@interface FClass : NSObject {
Gli accessori
- int numero; definiscono il
accessori della
comportamento
proprietà
dei metodi di Get
} e Set
@properties (retain) int numero;
- (void)Metodo;
@end
martedì 18 ottobre 2011
16. OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili
vogliamo creare i getter e setter:
@interface FClass : NSObject {
Gli accessori
- int numero; definiscono il
accessori della
comportamento
proprietà
dei metodi di Get
} e Set
@properties (retain) int numero;
- (void)Metodo;
@end
martedì 18 ottobre 2011
17. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad
ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore,
l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
18. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad
ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore,
l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
19. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad
ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore,
l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
20. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad
ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore,
l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
21. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad
ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore,
l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
22. XCODE
L’Ambiente di Lavoro
martedì 18 ottobre 2011
23. Gruppi, Files, Risorce
vista di Dettaglio
barra di stato
Xcode: Interfaccia
martedì 18 ottobre 2011
24. XCODE
•Gruppi e File: gestione file e gruppi (cartelle), aggiunta/
rimozione framework, aggiunta/rimozione classi (con il
wizard), Warning ed Errori
•Vista di Dettaglio: Modifica del codice, Gestione
breakpoint, navigazione tra i file e le classi
•Barra di Stato: mostra lo stato dell’applicazione durante
operazioni come la compilazione.
martedì 18 ottobre 2011
25. XCODE
•Visualizzazione dell’Interfaccia: tenendo premuto
Command e doppio click su una classe o oggetto, verrà
aperta la relativa interfaccia.
Riferimenti alle API: tenedo premuto command e
doppio click su un simbolo verranno mostrate le
informazioni sull’utilizzo del simbolo.
•Completamento del codice: durante la scrittura del
codice, Xcode vi aiuterà nella scrittura del codice.
•Chiusura del codice: sarà possibile “raggruppare” il
codice non utile al momento (es. Metodi non usati).
martedì 18 ottobre 2011
27. INTERFACE BUILDER
Interface Builder rende semplice la costruzione dei
prototipi grafici senza bisogno di scrivere alcuna riga di
codice.
Sarà possibile inserire qualunque degli elementi grafici
standard come per esempio: pulsanti, etichette, campi di
testo, tabelle ecc. solo con il drag&drop.
Xcode, lavora in tempo reale con l’interface builder,
quindi le assegnazioni potranno essere effettuate
semplicemente modificando le interfacce.
martedì 18 ottobre 2011
28. INTERFACE BUILDER
Gestore XIB Vista Interfaccia Proprietà
martedì 18 ottobre 2011
29. INTERFACE BUILDER
•Gestore XIB: permette la gestione degli elementi
presenti nell’interfaccia
•Vista Interfaccia: visualizza in tempo reale l’interfaccia
che si sta creando, inoltre permette la gestione di tutti
gli elementi del Gestore XIB (drag&drop).
•Proprietà: permette di modificare le proprietà degli
oggetti presenti nell’interfaccia e di gestire le
associazioni.
martedì 18 ottobre 2011
31. PRIMA APP
La nostra prima applicazione dovrà contenere gli elementi di
base per l’interfaccia e una semplice interazione.
Conoscenze:
Associazioni, Eventi;
Obiettivo:
Creare un app che mostri il proprio nome in una textLabel
dopo aver letto il valore da una UITextView alla pressione di
un tasto.
martedì 18 ottobre 2011
32. PRIMA APP : INTERFACCIA
UILabel
UITextField
UIButton
martedì 18 ottobre 2011
34. PRIMA APP:ASSEGNAZIONE ELEMENTI
Una volta create le proprietà
dentro il codice, si dovranno
assegnare agli elementi grafici
direttamente con l’INTERFACE
BUILDER.
Per fare ciò basta trascinare gli
elementi dell’Inspector verso gli
oggetti grafici nel layout.
martedì 18 ottobre 2011
35. PRIMA APP:IMPLEMENTAZIONE
Come già spiegato l’interfaccia descrive la classe, mentre
l’implementazione descrive il comportamento:
#import [super
"firstapp1ViewController.h" didReceiveMemoryWarning];
}
@implementation
firstapp1ViewController - (void)viewDidUnload {
@synthesize scrivi, cambia, ! // Release any retained
pulsante; subviews of the main view.
! // e.g. self.myOutlet = nil;
}
-(IBAction) pulsante_clicker {
! NSString *scritto = [scrivi
text]; - (void)dealloc {
! [cambia setText:scritto]; ! [scrivi dealloc];
! ! [cambia dealloc];
} [super dealloc];
}
- (void)didReceiveMemoryWarning {
! // Releases the view if it @end
doesn't have a superview.
martedì 18 ottobre 2011
37. UISCROLLVIEW / UITABLEVIEW
Mostrare elenchi di dati o griglie di essi è la prima attività
necessaria quando si vuole creare un’app di livello
professionale o che si connetta a repository remoti per
scaricare i dati.
Pertanto come prima esercitazione da analizzare e discutere
durante la sessione del corso vi allego un progetto Xcode da
discutere nella prossima sessione:
firstApp.zip
martedì 18 ottobre 2011