Ubuntu Touch app development resources - Ubuntu Touch Apps and Games

I am hoping we can compile a list of resources for those that would like to get involved in the Ubuntu touch development process.
QtQuick 5.0: QML Application Developer Resources
Create a currency converter phone app
Adding gesture support to your app
Phablet PPA
Ubuntu mobile tech forums

Compiling native apps (unofficial):
Linaro toolchain: http://launchpad.net/linaro-toolchain-binaries/+download
or for Ubuntu: apt-get install gcc-arm-gnueabihf
This is enough for compiling simple console apps (this works, I checked this). But for much more complex projects it's need additional library.
Also there is no official full supported sdk for Qt/Qml (just Qml), however you can manually compile Qt5 sources for ameabi hf. I'm failed with compiling Qt/Qml using precompiled Qt dynamic libraries from Ubuntu Phone OS image (compiled ok, but run failed). So we need dev Qt package for armeabi hf. But it need to keep in mind Ubuntu Phone OS uses libhybris and some other libs for interaction with Android libs and drivers (which are BIONIC). That's why we need to wait for proper SDK.
---------
Please, check cross-compiling and share minds how to compile native Qt/Qml
---------
Added link:
www$dot$googledrive$dot$com/host/0B5kDhuHYYcvwWDZpS0puZXhnZkk/ubuntu-sdk-dev-en.html (replase $dot$ with .)

Any resources for just creating Web Apps?

ojdon said:
Any resources for just creating Web Apps?
Click to expand...
Click to collapse
Nothing that I have seen yet but I would imagine web apps will be used in a similar fashion to Ubuntu desktop. If this is the case here are some resources that may get you up and running.
Unity Web API
Ask Ubuntu: How do I use Ubuntu webapps
Launchpad Page (may be helpful)

What about fogger? You can create your own webapps....
Sent from my GT-I9100 using xda premium

dim319 said:
Compiling native apps (unofficial):
Linaro toolchain: launchpad.net<slash>linaro-toolchain-binaries<slash>+download
or for Ubuntu: apt-get install gcc-arm-gnueabihf
This is enough for compiling simple console apps (this works, I checked this). But for much more complex projects it's need additional library.
Also there is no official full supported sdk for Qt/Qml (just Qml), however you can manually compile Qt5 sources for ameabi hf. I'm failed with compiling Qt/Qml using precompiled Qt dynamic libraries from Ubuntu Phone OS image (compiled ok, but run failed). So we need dev Qt package for armeabi hf. But it need to keep in mind Ubuntu Phone OS uses libhybris and some other libs for interaction with Android libs and drivers (which are BIONIC). That's why we need to wait for proper SDK.
---------
Please, check cross-compiling and share minds how to compile native Qt/Qml
Click to expand...
Click to collapse
If you are building simple console apps, you can also build them on the device itself through ssh, and using `sudo apt-get install gcc build-essentials`

BukaKing said:
If you are building simple console apps, you can also build them on the device itself through ssh, and using `sudo apt-get install gcc build-essentials`
Click to expand...
Click to collapse
Right, but I want to make Qt/Qml.
I got toolchain, grab sources of platform-api and libhybris from
launchpad.net/~phablet-team, made libs (some of them was grabbed form device), edit mkspecs for qmake, compiled app, pushed it on device, edited on device: /data/ubuntu/usr/share/qml-phone-shell/Applications/applications.js and finally it's work!. Even can be launched from Apps page (on device).
I solved problem with assertion from previous my post, but I got new problem which is GUI. Ubuntu Phone OS window manager put my GUI to the bottom layer, so I can't see GUI of my app until qml_phone_shell process will be killed!
----------------
Good news: I have solved all my problem. So bit later I post extended instruction on how I did it!
What this means? We can develop native C++ Qt/Qml apps without ssh and install them on device!

So the guide says the minimum requirements of developing Ubuntu apps is to use Ubuntu 12.10. But I'm on Ubuntu 12.04 and it's difficult to sacrifice. Would it be fine to develop Ubuntu apps using 12.04?

L0rDKadaj said:
So the guide says the minimum requirements of developing Ubuntu apps is to use Ubuntu 12.10. But I'm on Ubuntu 12.04 and it's difficult to sacrifice. Would it be fine to develop Ubuntu apps using 12.04?
Click to expand...
Click to collapse
Probably not. If I were you I would install 12.10 in a virtual machine until 13.04 is released. Than revisit the upgrade issue.

L0rDKadaj said:
So the guide says the minimum requirements of developing Ubuntu apps is to use Ubuntu 12.10. But I'm on Ubuntu 12.04 and it's difficult to sacrifice. Would it be fine to develop Ubuntu apps using 12.04?
Click to expand...
Click to collapse
Where did you read that? There is Ubuntu SDK for Precise (12.04), Quantal (12.10), and Raring (13.04) at ppa:canonical-qt5-edgers/qt5-proper repo!
I think it even possible to develop on Windows, however it takes a lot of work to recompile sources of parts)

dim319 said:
Right, but I want to make Qt/Qml.
I got toolchain, grab sources of platform-api and libhybris from
launchpad.net/~phablet-team, made libs (some of them was grabbed form device), edit mkspecs for qmake, compiled app, pushed it on device, edited on device: /data/ubuntu/usr/share/qml-phone-shell/Applications/applications.js and finally it's work!. Even can be launched from Apps page (on device).
I solved problem with assertion from previous my post, but I got new problem which is GUI. Ubuntu Phone OS window manager put my GUI to the bottom layer, so I can't see GUI of my app until qml_phone_shell process will be killed!
----------------
Good news: I have solved all my problem. So bit later I post extended instruction on how I did it!
What this means? We can develop native C++ Qt/Qml apps without ssh and install them on device!
Click to expand...
Click to collapse
I also managed to build a Qt/Qml hello world app on the phone itself.
You said that you already solved your problem, so maybe you already found this... I got my hello world program to show up on top by adding this to the command line when launching my program:
./hello --desktop_file_hint=/usr/share/applications/qmlscene.desktop

BukaKing said:
You said that you already solved your problem, so maybe you already found this... I got my hello world program to show up on top by adding this to the command line when launching my program:
./hello --desktop_file_hint=/usr/share/applications/qmlscene.desktop
Click to expand...
Click to collapse
It's useful for launching apps from bash on device.
I used another way. I didn't use ssh for compiling and deploying my app. Just PC and adb. And run app from UI shell (not from bash).
This is how I did:
www$dot$googledrive$dot$com/host/0B5kDhuHYYcvwWDZpS0puZXhnZkk/ubuntu-sdk-dev-en.html (replase $dot$ with .)

The best place to get started with apps on Ubuntu Touch is
developer.ubuntu.com/get-started/gomobile/

Related

Development Linux Distro

I was curious if any of the dev gurus had a nice Linux setup that they could make a Android Development distro from?
I keep running into repo issues when trying to set up my system. This led me to go.....'why isn't there a precompiled dev distro??'
If there is....please point me towards it, as I have been searching, but if it exist it's in a deep dark part of the internet I'm yet to discover.
Thanks
(ps. I wanted to make a clockwork recovery for an unsupported device.)
I keep running into repo issues when trying to set up my system.
Click to expand...
Click to collapse
I think the best Idea is to set up an Ubuntu based system at the moment.
With fedora based distros (fuduntu) I allways get some issues as well.
Some month ago I ran into a site that provided some Ubuntu based virtual box images with the Android SDK installed, but as it changes alot lately I don't think it's up to date, and I can't find it anymore anyway.
Maybe the guides aren't accurate anymore??
The distro I tried was the newest Ubuntu, but with everything I attempted to install I would get permission issues and sometimes the links to repo's weren't live any longer..
Perhaps what I should ask is 'Where can I find an accurate, reliable guide to setting up my linux distro for dev use?'
eh, I'm not completely dumb to Linux, but I require a bit of assistance :/
Ya, Ubuntu is kinda mandatory considering the way the kernel in AoS forked from it. Ubuntu is a common one, should be able to do what you need off the USB bootable even.
Really depends on your hardware setup. I've been playing around with a portable Puppy lately - something I can use at work and on my ancient semi-sandbox laptop. If you like I can put a vanilla package together for you.
There is a distro from 2010 made by a beginning builder specifically for linux/android developers. I haven't used it but it may be worth a go: http://www.simply-android.com/discu...oid-developers-have-their-own-linux-distro/p1

Ubuntu OS app extension?

Just wondering is anyone new what kind of apps Ubuntu OS will use. will they use .apk like android? or are they going to make a whole other kind of app?
AW: Ubuntu OS app extension?
They will use .deb ... Debian Packaging, that's one of the things what makes ubuntu ..
Sent from my Galaxy Nexus using xda premium
jscurtu said:
They will use .deb ... Debian Packaging, that's one of the things what makes ubuntu ..
Sent from my Galaxy Nexus using xda premium
Click to expand...
Click to collapse
Good question! But in response to jscurtu: That will just be the dpkg package manager extension (that's only good for installing an "app" and cannot be executed like an apk). As you are probably aware android is basically a JVM on Linux. Ubuntu will be different. There will be no "apps" per se and will probably just be extensionless binary ELFs residing in /usr/bin with an icon and application shortcut in /usr/share/applications/ like regular Ubuntu and most other GNU/Linux OS's .
Sent from my SGH-T999 using xda app-developers app
joshumax said:
Good question! But in response to jscurtu: That will just be the dpkg package manager extension (that's only good for installing an "app" and cannot be executed like an apk). As you are probably aware android is basically a JVM on Linux. Ubuntu will be different. There will be no "apps" per se and will probably just be extensionless binary ELFs residing in /usr/bin with an icon and application shortcut in /usr/share/applications/ like regular Ubuntu and most other GNU/Linux OS's .
Sent from my SGH-T999 using xda app-developers app
Click to expand...
Click to collapse
WT...? Yep, you got it right that the .deb format is the package format for the package manager..
..........but the rest just don't make any real sense with the OP question and the one has nothing to do with the other.
Anyway, ill be nice and get the things straight here for ya..
So what you are saying is that there will be no "apps" because its not in a single file, sorry i mean package??
That is just ridiculous ... "App" is just a term for a small Application no matter what the freaking execution is ..
Android programs are compiled into .dex (Dalvik Executable) files, which are basically "zipped" into a apk "package". .
So basically... Android don't execute apk's either, it opens the apk at run time and executes the binary's in the package .. Similar to what a .JAR is for Java programs.
But on Ubuntu and Linux in general, there are allot of ways to execute a program depending on what programming language you have choosed.
So in a GUI environment, users will usually start their programs from a .desktop file that has in short explanation the instructions to the executable optional with parameters, the path and the path to the icon file ..
I am sure the Ubuntu Phone will do that as well..
But because Canonical will allow carriers and manufactures to remove root capability like android... the installed files from the deb package would need to be installed where the phone (user) has rights .. So that might not be standard way, I guess there will be a special folder for phone apps .. Cant wait to find out..
here is a example how a .desktop file looks like :
Code:
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
Actions=NewWindow;
[Desktop Action NewWindow]
Name=Open a New Window
Exec=firefox -new-window
OnlyShowIn=Unity;
jscurtu said:
WT...? Yep, you got it right that the .deb format is the package format for the package manager..
..........but the rest just don't make any real sense with the OP question and the one has nothing to do with the other.
Anyway, ill be nice and get the things straight here for ya..
So what you are saying is that there will be no "apps" because its not in a single file, sorry i mean package??
That is just ridiculous ... "App" is just a term for a small Application no matter what the freaking execution is ..
Android programs are compiled into .dex (Dalvik Executable) files, which are basically "zipped" into a apk "package". .
So basically... Android don't execute apk's either, it opens the apk at run time and executes the binary's in the package .. Similar to what a .JAR is for Java programs.
But on Ubuntu and Linux in general, there are allot of ways to execute a program depending on what programming language you have choosed.
So in a GUI environment, users will usually start their programs from a .desktop file that has in short explanation the instructions to the executable optional with parameters, the path and the path to the icon file ..
I am sure the Ubuntu Phone will do that as well..
But because Canonical will allow carriers and manufactures to remove root capability like android... the installed files from the deb package would need to be installed where the phone (user) has rights .. So that might not be standard way, I guess there will be a special folder for phone apps .. Cant wait to find out..
here is a example how a .desktop file looks like :
Code:
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
Actions=NewWindow;
[Desktop Action NewWindow]
Name=Open a New Window
Exec=firefox -new-window
OnlyShowIn=Unity;
Click to expand...
Click to collapse
You've explained it the best, but I don't see what was wrong with my answer.. the apps will be written in c++ and qml according to canonical, which are then compiled into raw binary files (unlike semi compiled dexs). Ubuntu should be able to run anything compiled for the arm architecture. While we could get into a flamewar about how Linux executes binaries, if someone like the op above were to ask what app system Ubuntu uses I'd say (for the sake of simplicity) they use fully compiled c/c++ binaries, not a deb which is only an installer which does not copy to a folder and constantly unpack at runtime like an apk does. Sure there are a lot of languages out there but the interpreters for other languages have to written in c/c++ to be executed on the target machine (you could argue that androids dalvik is like this).. as for the lack of root I've heard rumors that the usr directory has special permission and they've found a way to secure it enough to allow this. I have about 0 time to review this so I hope it makes sense.
Sent from my SGH-T999 using xda app-developers app

[Q] Looking for an IDE that I can use to do Android OS builds

[Q] Looking for an IDE I can use for building the Android OS?
I have spent many years developing applications and device drivers for Windows (short pause while people make grunting noises and snide remarks)... but I recently switched over to developing software for Android. I have begun getting acquainted with the Eclipse IDE for Android app development (I downloaded the ADK bundle), and have also tried to acquaint myself with the process of building an Android ROM (ie: downloading the source and doing a build of the entire Android OS and support software). It seems like people who develop software for Linux are hung on the idea that everything should be done via typing shell commands into the terminal, and because Android is an "off shoot" of Linux, that the core developers of Android do the same (getting the source and building the OS is always described in terms of terminal shell commands).
I much prefer have a graphical UI in which I can just click on menu items and buttons to do the selected build operations. Is there an IDE (some sort of enhanced source code editor or whatever) that I can use to automate "repo" operations and to automate building the Android OS???
mediawiz said:
[Q] Looking for an IDE I can use for building the Android OS?
I have spent many years developing applications and device drivers for Windows (short pause while people make grunting noises and snide remarks)... but I recently switched over to developing software for Android. I have begun getting acquainted with the Eclipse IDE for Android app development (I downloaded the ADK bundle), and have also tried to acquaint myself with the process of building an Android ROM (ie: downloading the source and doing a build of the entire Android OS and support software). It seems like people who develop software for Linux are hung on the idea that everything should be done via typing shell commands into the terminal, and because Android is an "off shoot" of Linux, that the core developers of Android do the same (getting the source and building the OS is always described in terms of terminal shell commands).
I much prefer have a graphical UI in which I can just click on menu items and buttons to do the selected build operations. Is there an IDE (some sort of enhanced source code editor or whatever) that I can use to automate "repo" operations and to automate building the Android OS???
Click to expand...
Click to collapse
No , that pretty much stops others that don't know Linux from trying to build android . But this pretty much only is limited to aosp roms ie cyanogen, aokp etc . Doesn't mean you can't make your own rom using stock and changing stuff like other rom devs do ...This is pretty much the difference in original development and
Development
Sent from my SM-N900P using Xparent BlueTapatalk 2

Help on porting bluestacks/Memu, much faster, using WSL instead of virtualization

Hi,
I'm luca112358. I'm from France, I'm only 15 years old. I'd like to port a bluestacks/others (such as Memu) alternative to easily run android on Windows.
What is WSL??? WSL is the abreviation for "Windows Subsystem for Linux". Sometimes wrongly called "Bash on windows", WSL is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10.
The most amazing thing is that it provides a Linux-compatible kernel interface with NO linux kernel code. (see: https://doc.ubuntu-fr.org/wsl and https://docs.microsoft.com/en-us/windows/wsl/install-win10 for more infos)
It is ways faster than virtualization, that's why my project will be using it. I've successfully runned android using WSL, but I have no idea of how I can open the android GUI. I think I should try to code a virtual screen but I'm not sure.
I will be spending all my free time in this project. Unfortunatly with my exams comming I won't have so much time.
Thanks in advance for your help,
Have a nice day!!!
Legend:
In oblique: My life. You don't need to read
lucahack said:
Hi,
I'm luca112358. I'm from France, I'm only 15 years old. I'd like to port a bluestacks/others (such as Memu) alternative to easily run android on Windows.
What is WSL??? WSL is the abreviation for "Windows Subsystem for Linux". Sometimes wrongly called "Bash on windows", WSL is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10.
The most amazing thing is that it provides a Linux-compatible kernel interface with NO linux kernel code. (see: https://doc.ubuntu-fr.org/wsl and https://docs.microsoft.com/en-us/windows/wsl/install-win10 for more infos)
It is ways faster than virtualization, that's why my project will be using it. I've successfully runned android using WSL, but I have no idea of how I can open the android GUI. I think I should try to code a virtual screen but I'm not sure.
I will be spending all my free time in this project. Unfortunatly with my exams comming I won't have so much time.
Thanks in advance for your help,
Have a nice day!!!
Legend:
In oblique: My life. You don't need to read
Click to expand...
Click to collapse
U tried X-Server displays? I'm not sure if it works on Andorid.
PS- If you search around the net deep enough there are quite a few Android WSL packages. You might be able to kang some stuff from them. I'll upload mine somewhere soon and I'll give MS an eMail about tryna get Android into the Store when a GUI-supported WSL gets released publicly.
hello, I just saw your thoughts, coincidentally, I have the same idea. Can you talk about your progress?

Running Flash Tool on Linux.

The installation instructions for the Linux-based are minimal, and give very little guidance on precisely what is required. There is no specification of which distros or versions it is supposed to be compatible with, but it definitely does not run on Ubuntu 14.04 (which is still current and supported until this time next year).
The application is clearly not statically linked, and running it on Ubuntu 14.04 fails to execute after failing to load libpng16.so.16, which was not introduced until much later in the Ubuntu release cycle.
Q1: Is the flash tool known to run on any particular release of Ubuntu?
Q2: Which distro and release was it developed on/released for originally?
Q3: Would it not make more sense for it to be statically linked (as Nokia did for the maemo-flasher which still works with the N900 'phone to this day, despite the end of official support about 7 years ago)?
Q4: Who do I need to take these other queries up with at Planet? There seems woefully little proper contact information.
cain.mosni said:
The installation instructions for the Linux-based are minimal, and give very little guidance on precisely what is required. There is no specification of which distros or versions it is supposed to be compatible with, but it definitely does not run on Ubuntu 14.04 (which is still current and supported until this time next year).
The application is clearly not statically linked, and running it on Ubuntu 14.04 fails to execute after failing to load libpng16.so.16, which was not introduced until much later in the Ubuntu release cycle.
Q1: Is the flash tool known to run on any particular release of Ubuntu?
Q2: Which distro and release was it developed on/released for originally?
Q3: Would it not make more sense for it to be statically linked (as Nokia did for the maemo-flasher which still works with the N900 'phone to this day, despite the end of official support about 7 years ago)?
Q4: Who do I need to take these other queries up with at Planet? There seems woefully little proper contact information.
Click to expand...
Click to collapse
Ubuntu 14.04 sounds unreasonably old to me to be complaining about this, but you make a fair point that the issue could be avoided altogether. I'm also used to rolling release and having the latest kernel on most devices, though. I still just have Android on my Gemini due to difficulties finding info and files on this whole process. I run GNU/Linux myself, so hopefully I'll manage to figure out the flasher without needing to borrow a Windows machine.
From what I've gathered, there's a public file for setting up Android/Debian dual-boot, but I don't see anything about having Debian as the only OS, and it seems files for builds of the other distros with support (Sailfish, Ubuntu, postmarketOS) are private. Support for them is lacking right now, but I still found it frustrating to think I had a lot of choices and then see that I was a bit misled. It'd be nice if I could find an IRC channel dedicated to the Gemini so I could discuss this with knowledgeable people in a more fast-paced manner.
soundtoxin said:
Ubuntu 14.04 sounds unreasonably old to me to be complaining about this, but you make a fair point that the issue could be avoided altogether.
Click to expand...
Click to collapse
The whole point about the Ubuntu LTS releases is that they ARE LTS (long-term support - stable but supported for up to 5 years), so it's perfectly reasonable to still be running it.
I've since tried on Ubuntu 16.04, and same problem.
I'm also used to rolling release and having the latest kernel on most devices, though. I still just have Android on my Gemini due to difficulties finding info and files on this whole process. I run GNU/Linux myself, so hopefully I'll manage to figure out the flasher without needing to borrow a Windows machine.
From what I've gathered, there's a public file for setting up Android/Debian dual-boot, but I don't see anything about having Debian as the only OS, and it seems files for builds of the other distros with support (Sailfish, Ubuntu, postmarketOS) are private. Support for them is lacking right now, but I still found it frustrating to think I had a lot of choices and then see that I was a bit misled.
Click to expand...
Click to collapse
That is irritating. As is the woeful lack of meaningful support.
Progress
Progressing...
Having cloned the Github source, it is now compiled and fully operational on both 16.04 LTS (xenial) and 14.04 LTS (trusty) .
git clone the source from Github - dguidipc/SP-Flash-Tool-src (board will not allow me, as a new user, to post the full link)
Install dependencies
qt4-dev-tools
libqtwebkit4
libqtwebkit-dev
alter the make configuration for the location of qmake
Code:
cd ${gitrepo}/SP-Flash-Tool-src/Build/
#backup the original build config just in case
f=build-linux.mk; cp -vp ${f} `date --reference=${f} "+${f}-%Y%m%d%H%M%S"`
In
Code:
build-linux.mk
change the path config for
Code:
qmake
to read:
Code:
QMAKE := /usr/bin/qmake
compile
Code:
cd ${gitrepo}/SP-Flash-Tool-src/
make
Binary will be in
Code:
../_Output
along with the object modules and a supporting shell script.
cain.mosni said:
Progressing...
[*]alter the make configuration for the location of qmake
Click to expand...
Click to collapse
No longer required. The linux I tweaked the linux build file to detect when it's on Ubuntu, and that tweak is now incorporated in the official source.

Categories

Resources