JAVA

Supportare differenti dimensioni di schermo in android grazie ai Fragments

Friday 12 October 2012, 17:52
federico.serrelli@synaptica.info

Nello sviluppo di applicazioni mobili diventa sempre più importante il supporto di schermi e dimensioni anche molto diverse a causa del diffondersi di modelli e tipologie di dispositivi sempre più disparati.
Per fortuna Android offre una soluzione veramente intelligente e semplice per aiutarci a sviluppare applicazioni che da un lato siano compatibili col maggior numero possibile di dispositivi ma che, dall’altro, si adattino al meglio agli schermi dei dispositivi in termini di usabilità e sfruttamento della superficie disponibile .

La soluzione sono i FRAGMENT.

In realtà i Fragment offrono altri grandi vantaggi come, ad esempio, poter scomporre le Activity in blocchi elementari (una sorta di “sub-activity”) replicabili e riutilizzabili in più layout o schermate applicative.
In questo articolo ci focalizzeremo su un semplicissimo esempio tramite il quale sviluppare un’Activity (che chiameremo MainActivity) in grado di presentarsi all’utente con due fragment affiancati nel caso lo schermo del dispositivo sia abbastanza grande da consentirlo (es. tablet), mentre negli altri casi gli stessi fragment vengono mostrati sequenzialmente (quasi come se fossero due Activity distinte).
L’ipotesi è quella di avere una listView di oggetti nel primo fragment (SxFragment) e il dettaglio dell’oggetto selezionato nel secondo fragment (DxFragment).

La figura seguente mostra l’esempio.

1) Layout
Predisponiamo due differenti layout per schermi piccoli e grandi. La stessa cosa, ad esempio, può essere fatta per Portrait/Landscape, con più fragmen, etc…

file: /res/layout-large/example_layout.xml

file: /res/layout/example_layout.xml

Da notare che nel secondo layout non sono inclusi staticamente i Fragment e che è invece assegnato un id (fgmContainer) al contenitore che ci occorrerà per agganciare i fragment.

2) Activity principale

oppure nel caso di utilizzo della Android Support Library (retrocompatibilità con device che hanno versioni di android < 3.0):

Nel onCreate includiamo il layout e istanziamo dinamicamente il Fragment nel caso in cui siamo alle prese con uno schermo piccolo.

3) Fragment A (items list)
Nel fragment di sinistra, contenente la listView, assegnamo all’evento di selezione (OnItemClick) il compito di notificare la selezione tramite un metodo di callback (onItemSelected) all’attività principale.

4) Activity principale
Aggiungo il metodo di selezione nella MainActivity. Chiaramente il metodo discrimina il caso in cui abbiamo entrambi i fragment da quello in cui occorra istanziare il secondo dinamicamente. Nel primo caso è sufficiente richiamare il metodo di update esposto dal fragment (doItemSelection), mentre nel secondo caso occorre effettuare una transizione dinamica tra i due Fragment. Il primo dei due, viene sostituito tramite “replace”, ma inserito nel Back Stack in modo che premendo il pulsante “Back” non termini l’activity ma venga semplicemente effettuata la transizione al contario e riappaia il primo Fragment.

5) Fragment B (item details)
Il Fragment B, infine, riceve come argomenti i parametri necessari alla sua inizializzazione o, se già inizializzato, espone i metodi necessari all’aggiornamento da parte della MainActivity. Nell’esempio semplicemente l’id dell’item selezionato viene inserito in una TextView.

Nei prossimi articoli vedremo come effettuare la gestione di Menu e Actionbar nel caso di utilizzo dei Fragment.

Ciao e a presto
Federico

Il Cloud di Synaptica sbarca su Android

Tuesday 31 January 2012, 18:51
federico.serrelli@synaptica.info

[lang_it]
Immaginate di essere un agente commerciale che necessita di avere sempre con sé il proprio listino aggiornato e, con esso, immagini e schede tecniche dei propri prodotti.
Immaginate di essere un magazziniere o un negoziante che ha la necessità di aggiornare l’inventario degli articoli presenti in magazzino, di censire una fornitura di nuovi pezzi o, ancora, di preparare un ordine per la spedizione con annessa bolla di accompagnamento e descrizione della ripartizione nei singoli colli.
Oppure immaginate di essere nel vostro showroom e di voler avere sempre a portata di mano, per i clienti interessati, il catalogo dei prodotti non esposti ed, eventualmente, poter direttamente comporre e registrare un ordine, disponendo direttamente l’emissione della relativa fattura o scontrino.
Ancora, immaginate di viaggiare molto per lavoro e voler avere sempre sotto mano l’agenda degli appuntamenti per poter visualizzare, modificare, eliminare appuntamenti o consuntivare i tempi relativamente alle vostre commesse e ai clienti, trovando, poi, questi dati automaticamente integrati nel vostro sistema gestionale.

Se tutto questo non è solamente immaginazione, il Cloud di Synaptica fa per voi!

Ciò è reso possibile da tecnologie all’avanguardia la cui integrazione nel sistema Syna E.R.P. unisce la solidità e l’affidabilità di un sistema centralizzato che espone servizi e utilities via web in sicurezza con la versatilità e mobilità di applicativi client per PC portatili e, soprattutto, smartphone e tablet.

Perché implementare client nativi sui device? Semplice: perché in questo modo è possibile lavorare anche offline, demandando all’applicativo la gestione dell’invio dei dati al cloud non appena la connettività torna disponibile.

I primi applicativi per Android integrati con Syna E.R.P. sono già disponibili, mantenendo però fermo l’obiettivo di sviluppare soluzioni custom in funzione delle possibili esigenze che, in un contesto di mobilità, si moltiplicano quasi all’infinito!

Ecco un semplicissimo video dimostrativo delle potenzialità offerte dal nostro sistema di interfacciarsi al magazzino della propria azienda :

Formazione in iFaber

Friday 4 March 2011, 15:50
federico.serrelli@synaptica.info

Ciao a tutti!
Un breve articolo per documentare l’attività che con Ivan stiamo svolgendo da consulenti in iFaber.

Il progetto, nato in collaborazione con Elever srl ormai un anno fa, è finalizzato alla realizzazione di una portale web per la gestione e qualifica dei fornitori. Il portale è destinato sia ad uso interno (Unicredit) che per clienti terzi.

Il binomio tecnologico impiegato Zkoss+Oracle si è dimostrato all’avanguardia ed una scelta decisamente azzeccata (tempi di sviluppo brevissimi ma con affidabilità e prestazioni ottime). Altre tecnologie (come Hibernate e Axis) hanno fatto da corollario per la nascita di una web application veramente di grande spessore sia dal punto di vista funzionale che di concezione!

Presto saranno disponibili maggiori dettagli su questa e sulle altre attività di collaborazione nella sezione dedicata.

Questa settimana abbiamo tenuto, presso iFaber, un corso sull’applicazione dedicato prima di tutto ad introdurre nuove risorse (circa una dozzina), destinate ad ingrandire il team di sviluppo, alle tecnologie impiegate (in particolare Zkoss).
Il corso si è indirizzato poi a dare una panoramica delle caratteristiche peculiari dell’applicazione (tra cui dinamicità, configurabilità, internazionalizzazione, profilazione degli accessi…) scendendo nei dettagli tecnici implementativi necessari ad un primo contatto con il “dietro le quinte” di questo complesso portale.

Naturalmente ci siamo contraddistinti per il nostro stile ultra professionale (…) anche in questa circostanza!

Ecco qualche contributo dell’evento 🙂

Ciao a tutti e “stay tuned!”

Problema debug Eclipse

Wednesday 13 October 2010, 21:36
marco.brendolini@makeallweb.it

Lavorando con Eclipse potrebbe capitare di incontrare una serie di problemi con la modalità di debug java.
In particolare, eclipse, sembra ignorare completamente i break points inseriti non interrompendo l’esecuzione del codice.

Sembra che il problema sia dovuto alla JRE utilizzata. In particolar modo dalla versione 1.6.14 fino alla 1.6.20.

Installando la versione 1.6.21 il debug torna a funzionare correttamente.

A presto

ZK Calendar 2.0 for Zkoss 5.0

Thursday 11 February 2010, 18:03
ivan.revelli@synaptica.info

ZKoss Calendar v.2.0

[lang_it]

Oggi è stata rilasciata la seconda versione del calendario di ZK ( articolo ufficiale : http://www.zkoss.org/product/zkcalendar.dsp) , non ho resistito son subito andato a provare la demo all’indirizzo http://zcal.zkoss.org/.
La mia prima impressione è che sia molto ma molto più veloce delle precedenti, non sò bene perchè ma questa mi è balzata immediatamente all’occhio, sembra avere delle perfomance similari al più veloce che ho visto, oltre che essere allo stato dell’arte uno dei più completi che abbia visto mai compresi quelli di applicazioni native.

[/lang_it]

[lang_en]

Today the second version of ZK Calendar is ready ( official article on : http://www.zkoss.org/product/zkcalendar.dsp) . Tring the demo version at http://zcal.zkoss.org/ the first impression is that this new version is faster then the older one. I don’t know why is only a sansation. But in conclusion for me is one of the best planning component that i saw until now.

[/lang_en]

ZK Calendar is ready !!!

Monday 8 June 2009, 11:32
ivan.revelli@synaptica.info

ZK Live Demo test

Some week ago, we were pleased to view a preview of ZK Calendar from zkoss web site… it was vary complete tool for planning systems.
Now it is ready to download from Zkoss.org following this link.
Just now i’ve tried the live demo and it appear very smart to use and fast.
It appears very complete tool that can be used for professional planning application, we wanna try to integrate it in our shareteam application replacing the existent DHTML Goodies Planner integrated with ZK too .

please tell us your impression about that, tnkx
ivan

Scoprite cosa possiamo fare per il vostro business
I nostri linguaggi