2011-12-26 15 views
5

Recentemente mi sono tuffato a capo nello sviluppo di app Android in Java. Per me è tutto molto nuovo in quanto la mia esperienza è nello sviluppo web con PHP. Ma ho bisogno di adattarmi abbastanza rapidamente anche ad un ambiente desktop (ad esempio Windows).Framework di sviluppo del desktop Java simile ad Android?

Per semplificare un po 'la curva di apprendimento, esistono framework di sviluppo desktop Java simili al framework Android? Quando si tratta di applicazioni desktop, quale framework/i Java GUI e/o MVC, toolkit e/o librerie consiglieresti a qualcuno la cui unica vera esperienza Java/GUI è con Android?

Note

  1. Mentre un quadro unico, unificato fornendo la gestione GUI, widget, e così via, sarebbe bello, non è così importante; Sto solo cercando alcune raccomandazioni su un framework applicativo di base per iniziare, così come una libreria GUI che potrebbe funzionare bene con detto framework.

  2. Forse sarebbe utile un po 'se elaborassi un po' quello che sto cercando di fare. Il mio obiettivo è creare un'app Android abbastanza semplice per la creazione e la gestione di determinati record, che sono archiviati localmente ma che possono essere sincronizzati con un server remoto. Poi ho bisogno di un'app desktop che risieda nella barra delle applicazioni di Windows e fai clic su di essa per far apparire una finestra manager che fornisce funzionalità simili all'app Android. Quali librerie suggeriresti sul desktop per raggiungere questi obiettivi?

  3. Un paio di cose che apprezzo sul framework Android che mi piacerebbe trovare in un quadro orientata al desktop:

    • Android fa un sacco di lavoro boilerplate per voi, e voi basta inserire le regole che rendono unica la tua app.

    • Android consente di utilizzare file XML per descrivere il layout fisico della presentazione, il che è utile per mantenere il codice che gestisce le interazioni dell'utente separato dal codice che descrive il layout.

    • Android fornisce un SDK molto user-friendly e l'intero stack di strumenti che rende super facile saltare, sperimentare e imparare.

risposta

3

Bene, puoi provare Apache Pivot. Usa i file XML per definire il contenuto dell'interfaccia utente. Le classi dell'interfaccia utente includono finestre, finestre di dialogo, pulsanti, elenchi, immissione di testo, layout, trascinamento della selezione e altro.

Come Apache Pivot site stati:

Pivot permette agli sviluppatori di costruire facilmente visivamente coinvolgente, multi-piattaforma, le applicazioni collegate in Java o qualsiasi altro linguaggio JVM, come JavaScript, Groovy, o Scala.

Pivot consente agli sviluppatori di creare soluzioni utilizzando gli strumenti che già conoscono, riducendo i tempi di consegna e riducendo lo sprawl della tecnologia.

Di seguito l'esempio di XML utilizzato per creare l'interfaccia utente di applicazione "Ciao Parola":

<Window title="Hello BXML!" maximized="true" 
      xmlns:bxml="http://pivot.apache.org/bxml" 
      xmlns="org.apache.pivot.wtk"> 
      <Label text="Hello BXML!" 
       styles="{font:'Arial bold 24', color:'#ff0000', 
        horizontalAlignment:'center', verticalAlignment:'center'}"/> 
</Window> 

O another one example di semplice interfaccia grafica dell'applicazione:

<Window title="Hello" maximized="true" 
    xmlns:wtkx="http://pivot.apache.org/wtkx" 
    xmlns="org.apache.pivot.wtk"> 
    <content> 
     <BoxPane styles="{padding:4, horizontalAlignment:'center', verticalAlignment:'center'}"> 
      <Label wtkx:id="label1" text="Please enter your name" 
       styles="{font:'Arial 20', color:'#ff0000', 
        horizontalAlignment:'center', verticalAlignment:'center'}"/> 
       <TextInput wtkx:id="text1" /> 
       <PushButton wtkx:id="button1" buttonData="Enter"/> 
     </BoxPane> 
    </content> 
</Window> 

in qualche modo simile all'architettura della GUI di Android.

+1

Questo è fantastico, non avevo mai sentito parlare di Pivot prima, ma sembra esattamente quello che stavo cercando in quel momento. Non sono più coinvolto molto nello sviluppo di Java, ma penso che questa risposta sia sufficiente per rubare l'approvazione due anni dopo. –

2

Se il motivo è lo sviluppo di applicazioni Android in realtà, vorrei suggerire non preoccuparti per Java GUI, perché entrambi sono mondi diversi. Android usa Java/Object Orientation come linguaggio di sviluppo (sytax e semantica), ma non gli interessa gli apis di Java GUI e altri apis. Se vuoi davvero imparare la GUI del desktop Java, ci sono alcuni pacchetti chiamati Swing. Puoi guardare quelli.

+2

Devo costruire ENTRAMBI Android e un'app desktop che si integrano con un server per condividere e manipolare gli stessi dati in modi diversi. Se non avessi avuto bisogno di preoccuparmi dello sviluppo della GUI Desktop, non avrei chiesto. :) –

5

Non c'è niente che assomigli all'architettura/GUI Android per il desktop, davvero.

I due giocatori sono Java Desktop (GUI originale cross-platform-ish) Swing e SWT (Eclipse e componenti nativi). Griffon è un framework desktop Groovy MVC che astrae gran parte del lavoro.

A seconda delle esigenze, la creazione di un client ricco all'interno di Eclipse o NetBeans è un'opzione.

Costruire una ricca piattaforma web-based potrebbe anche avere senso; è possibile distribuire con un server incorporato utilizzando un numero qualsiasi di tecnologie Web Java, che è spesso il più conveniente, in particolare se si desidera essere in grado di ospitare la stessa funzionalità su piattaforme o commercializzarlo come servizio pur consentendo la distribuzione locale.

+0

Sono a conoscenza di Swing e SWT, nella misura in cui sono le librerie GUI più popolari per lo sviluppo Java. Spero di trovare qualcosa di * piccolo * più vicino al framework Android, anche se non è davvero una soluzione integrata .. cosa ne pensi di SwiXML, ad esempio? E non ci sono framework MVC là fuori per la costruzione di app con Java (non Groovy)? –

+0

@BrianLacy Non conosco nessun framework di versione di Swing per la sola MVC-only, ma ciò non significa che non ce ne siano. SwiXML sembra a posto, ma personalmente non mi preoccuperei di farlo, ma YMMV. Sono disponibili una varietà di soluzioni simili ai builder, ma non ne ho una conoscenza eccessiva. –

Problemi correlati