Difference between revisions of "Custom Drawn Interface/Android/es"

From Lazarus wiki
Jump to navigationJump to search
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
{{Custom_Drawn_Interface/Android}}
 +
 
== Arquitectura ==
 
== Arquitectura ==
  
Line 5: Line 7:
 
Nuestros previos y poco durables intentos para escribir un Interface LCL para Android (LCL-Android) utilizaban un método no standar para usar ejecutables nativos mediante la comunicaión con Java a través de pipes. Este método finalmente se abandonó porque estaba considerado como no soportado porby Google. Se considera obsoleto y por tanto la gente debería utilizar en su lugar LCL-CustomDrawn-Android. Este antiguo interface se encuentra documentado en [[Android Interface]].
 
Nuestros previos y poco durables intentos para escribir un Interface LCL para Android (LCL-Android) utilizaban un método no standar para usar ejecutables nativos mediante la comunicaión con Java a través de pipes. Este método finalmente se abandonó porque estaba considerado como no soportado porby Google. Se considera obsoleto y por tanto la gente debería utilizar en su lugar LCL-CustomDrawn-Android. Este antiguo interface se encuentra documentado en [[Android Interface]].
  
== Roadmap ==
+
== Recorrido ==
  
 
Parte 1, hasta Marzo de 2012:
 
Parte 1, hasta Marzo de 2012:
  
 
# Construye el conjunto de [[Lazarus Custom Drawn Controls]].
 
# Construye el conjunto de [[Lazarus Custom Drawn Controls]].
* Bindings iniciales con las APIs de Android.
+
# Bindings iniciales con las APIs de Android.
* Se crea una aplicación para generar automáticamente los bindings.
+
# Se crea una aplicación para generar automáticamente los bindings.
* Comienzo del nuevo conjunto de widgets.
+
# Comienzo del nuevo conjunto de widgets.
* Implementa soporte para JNI.
+
# Implementa soporte para JNI.
* Fusiona los controles de Lazaus Custom dentro de LCL y los utiliza para implementar todos los controles básicos.
+
# Fusiona los controles de Lazaus Custom dentro de LCL y los utiliza para implementar todos los controles básicos.
* Añade soporte de texto para Android.
+
# Añade soporte de texto para Android.
* Implementa área de desplazamiento (scrolling) básico en la ventana cliente.
+
# Implementa área de desplazamiento (scrolling) básico en la ventana cliente.
* Añade emulador móvil para plataformas de escritorio.
+
# Añade emulador móvil para plataformas de escritorio.
* Improve the mobile scrolling.
+
# Improve the mobile scrolling.
* Añade soporte de texto en X11.
+
# Añade soporte de texto en X11.
* Add DPI awareness y adaptación en el  LCL.
+
# Add DPI awareness y adaptación en el  LCL.
* Añade suporte de texto no nativo por medio de pasfreetype.
+
# Añade suporte de texto no nativo por medio de pasfreetype.
  
 
Parte 2: April, Mayo, Junio 2012:
 
Parte 2: April, Mayo, Junio 2012:
  
*TButton afianza la presentación visual en Android.
+
# TButton afianza la presentación visual en Android.
*TBitBtn
+
# TBitBtn.
*TRadioButton finaliza el aspecto nativo.
+
# TRadioButton finaliza el aspecto nativo.
*Calendar dialog -> Problemático debido a que LCL no tiene dialogo de calendario (calendar dialog), por lo que simplemente abre un formularo normal y sitúa un calendario en el mismo, se hace necesario un Widget (aplicativo simple) TCDCalendar.
+
# Calendar dialog -> Problemático debido a que LCL no tiene dialogo de calendario (calendar dialog), por lo que simplemente abre un formularo normal y sitúa un calendario en el mismo, se hace necesario un Widget (aplicativo simple) TCDCalendar.
*MaskEdit.
+
# MaskEdit.
*Mejoras en TComboBox.
+
# Mejoras en TComboBox.
*TMemo.
+
# TMemo.
*TListView como una lista con columnas.
+
# TListView como una lista con columnas.
*TMainMenu.
+
# TMainMenu.
*Database con sqlite.
+
# Database con sqlite.
*Lectura de códigos de barras (Barcode).
+
# Lectura de códigos de barras (Barcode).
*Instalador incorporado para Windows.
+
# Instalador incorporado para Windows.

Latest revision as of 19:59, 11 July 2015

English (en) español (es) 日本語 (ja) русский (ru)

Arquitectura

LCL-CustomDrawn-Android utiliza una aplicación Java mínima que se comunica con nuestra librería de Pascal y la envía todos los eventos, aceptando también mandatos. La comunicación se realiza vía JNI tal como es soportada por Google. Los controles no son nativos, en su lugar se dibujan utilizando TRawImage+TLazIntfImage+TLazCanvas mientras que los eventos y pintado se recorta utilizando LazRegions. El dibujado en si mismo es realizado utilizando jnigraphics para dibujar un objeto Bitmap de Java que es dibujado con una actividad mínima de Java en un SurfaceView.

Nuestros previos y poco durables intentos para escribir un Interface LCL para Android (LCL-Android) utilizaban un método no standar para usar ejecutables nativos mediante la comunicaión con Java a través de pipes. Este método finalmente se abandonó porque estaba considerado como no soportado porby Google. Se considera obsoleto y por tanto la gente debería utilizar en su lugar LCL-CustomDrawn-Android. Este antiguo interface se encuentra documentado en Android Interface.

Recorrido

Parte 1, hasta Marzo de 2012:

  1. Construye el conjunto de Lazarus Custom Drawn Controls.
  2. Bindings iniciales con las APIs de Android.
  3. Se crea una aplicación para generar automáticamente los bindings.
  4. Comienzo del nuevo conjunto de widgets.
  5. Implementa soporte para JNI.
  6. Fusiona los controles de Lazaus Custom dentro de LCL y los utiliza para implementar todos los controles básicos.
  7. Añade soporte de texto para Android.
  8. Implementa área de desplazamiento (scrolling) básico en la ventana cliente.
  9. Añade emulador móvil para plataformas de escritorio.
  10. Improve the mobile scrolling.
  11. Añade soporte de texto en X11.
  12. Add DPI awareness y adaptación en el LCL.
  13. Añade suporte de texto no nativo por medio de pasfreetype.

Parte 2: April, Mayo, Junio 2012:

  1. TButton afianza la presentación visual en Android.
  2. TBitBtn.
  3. TRadioButton finaliza el aspecto nativo.
  4. Calendar dialog -> Problemático debido a que LCL no tiene dialogo de calendario (calendar dialog), por lo que simplemente abre un formularo normal y sitúa un calendario en el mismo, se hace necesario un Widget (aplicativo simple) TCDCalendar.
  5. MaskEdit.
  6. Mejoras en TComboBox.
  7. TMemo.
  8. TListView como una lista con columnas.
  9. TMainMenu.
  10. Database con sqlite.
  11. Lectura de códigos de barras (Barcode).
  12. Instalador incorporado para Windows.