Upload
thp4
View
2.619
Download
4
Embed Size (px)
DESCRIPTION
2010-01-22
Citation preview
Maemo 5Maemo 5Developer WorkshopDeveloper Workshop
Thomas PerlThomas Perl2010-01-222010-01-22
Übersicht● Nokia 770, N800 und N810● Maemo.org community und Mer● Sprachen, Toolkits und Frameworks● Maemo 5 SDK● Debian Packaging und /optification● Publishen auf maemo.org● On-Device Development
Nokia 770, N800 und N810● “Internet Tablets”● Mai 2005: Nokia 770● Jänner 2007: N800● Oktober 2007: N810
Maemo.org community● Open Source – Software für Maemo● Services
● bugs.maemo.org (Offizieller Bug-Tracker)● talk.maemo.org (Forum)● garage.maemo.org (Projekt-Hosting)● maemo.org/packages (Extras QA)● #maemo, #mer auf Freenode
● Bester Einstiegspunkt zum Entwickeln
Mer● Open-Source “Distribution” von Maemo 5 ● Proprietäre Teile durch Open Source-
Implementierung ersetzen (wo möglich)● Support für nicht-Maemo-Geräte
Sprachen, Toolkits und Frameworks● GTK+/Hildon: C, C++, Python (PyMaemo)● Qt-Support: C++, Python (PyQt4, PySide)● Sonstiges: Haskell, Perl, Ruby, Prolog, …● Für Spiele: OpenGL ES, SDL, PyGame● Für Multimedia: GStreamer
● Mehr? → Pakete in Debian (armel)
Maemo 5 SDK● SDK Installer (URL siehe Wiki-Seite)● Ohne Linux: VM (zB Ubuntu-Image)● UI, Desktop, Compile-“targets” (armel, x86)● MADDE (Technology Preview)
● Cross-compiler● Für Linux (32- u. 64-bit), Windows, Mac OS X
● ...oder direkt am Gerät ohne SDK (später)
..und IDEs?● PluThon
● Eclipse-Plugin für Python/Maemo● Direktes “Deployment” auf das Gerät (SSH)
● Qt Creator● Qt-Anwendung designen und entwickeln● Source mit Scratchbox (armel) kompilieren
Debian-Packaging● Apps werden als “.deb”-Pakete geliefert● Handling von Abhängigkeiten, Konflikten,
Upgrades, etc.. (“apt-get”)● Siehe: Wiki, Debian Policy Manual● Maemo-spezifische Erweiterungen
(Programmname, Icon für App Manager, ...)
● Alternativen: PyPackager oder py2deb
Optification● 256MB OneNAND: Kernel + Root-FS● 32GB eMMC
● 2 GB /home (ext3)● ca. 29 GB /home/user/MyDocs (vfat)● /opt ist Symlink auf /home/opt/
● Programme müssen nach “/opt” installiert werden, um Platz zu sparen
● Helper-Tool: maemo-optify
Publishen auf maemo.org (1/2)● Maemo.org Extras Repository● QA-Prozess
● 10 Tage Quarantäne● 10 Karma-Punkte (Thumbs up: +1, down: -4)● Funktionalität, Illegale Inhalte, Usability,
Stromverbrauch, Optification, Security Risks, fehlende URL zum Bugtracker(!)
Publishen auf maemo.org (2/2)
SourcePaket(Debian, .dsc)
maemo.orgAutobuilder
BuildFehler: EMailmit Details, Rejected
Build OK: Import inMaemo ExtrasDevel
Entwickler entscheidet, wannPaket nach ExtrasTesting kommt
Extras QA Process(10 Tage, 10 KarmaPunkte)
Paket darf insExtrasRepository
On-Device Development (1/2)● Man nehme:
● Python + UI Bindings (PyGTK oder PyQt4)● Vim (oder: QEmacs, PyGTKEditor, ...)● Wenn man Zeit hat: GCC für C-Entwicklung
● Per X-Terminal geht das so:
apt-get install python-gtk2 python-hildon
On-Device Development (2/2)
Credits● Mer Photo: Meizirkki
http://picasaweb.google.com/meizirkki/MerOnTheTouchBook
● Maemo Extras QA Process - IconsGNOME Icon Theme
● PyGTKEditor Screenshot: Khertanhttp://khertan.net/2009/11/
● 770, N800, N810, N900 Photos: Nokiahttp://www.nokia.com/press/media_resources
● Maemo.org Logo: Maemo Community