Pinephone app development
#1
Hey guys,

I'm a proud new owner of a brand new pinephone! I wanted to start developing on the device but not sure what approach to take. I'm a bit long in the tooth when it comes to developing GUI applications and haven't done much development for many years but want to get back into tinkering.

To ease myself in I was thinking of writing a simple game like Tetris or some other fun game. I've looked at several toolkits like GTK and Qt but something else that piqued my interest was using Flutter? I found this YouTube video from the Linux Foundation and it got me thinking if this is something worth considering using for developing apps for the pinephone? This guy seems to have done a lot of the legwork to get this working for arm. I've included the video and I'm interested in hearing the opinions of more seasoned developers.

  Reply
#2
@lupyuen used flutter for the Android and iOS versions of a PineTime companion app, but stuck to go for the linux phone version. Reasons are briefly mentioned in the article about it:
https://lupyuen.github.io/pinetime-rust-...icles/bloc
Things may have moved on since then though. It's not something I've tried so can't give any 1st hand info.
  Reply
#3
(03-04-2021, 11:42 AM)wibble Wrote: @lupyuen used flutter for the Android and iOS versions of a PineTime companion app, but stuck to go for the linux phone version. Reasons are briefly mentioned in the article about it:
https://lupyuen.github.io/pinetime-rust-...icles/bloc
Things may have moved on since then though. It's not something I've tried so can't give any 1st hand info.

Thank you for the information @wibble. Some great work from lupyuen; information I will make use of for sure. I've been reading a little more and I'm convinced that Flutter is a great choice for developing things for the pinephone for many reasons. The only thing I can see biting you in the bum is incompatibly issues. I really like the idea of one codebase for several platforms. 

I've not done much with GO either TBH. I hear it's an easy language to pick up like dart and I was considering it for another web project of mine but never got around to making a start and now I'm looking at using Flutter for that too maybe.

I'm a systems administrator by day and don't do much programming day to day other than a bit of Python and the odd project in other languages when required so I need something simple to pick up and run with. Both GO and Flutter look like great choices for a guy like myself.

Hopefully I'll have something to share in a month or so.
  Reply
#4
Have you considered trying Godot? I read an article recently about creating GUI apps with it[1]. I've used it quite extensively for games and I'm pretty tempted to try app development with it. The GUI system is a little hard to wrap your head around, but there are some pretty decent tutorials online for that. I got a basic demo running on the pinephone using frt[2].

1. https://medium.com/swlh/what-makes-godot...cfb941df3b
2. https://github.com/efornara/frt
  Reply
#5
I haven't taken delivery of my PinePhone yet so can't specifically recommend, but I use Lazarus, a drag-and-drop IDE for FreePascal that quickly creates apps under all sorts of OSs.  I use Windows, OpenSuse and Raspbian currently and have had good success with it.
Chris
  Reply
#6
(03-05-2021, 02:43 AM)drgr33n Wrote:
(03-04-2021, 11:42 AM)wibble Wrote: @lupyuen used flutter for the Android and iOS versions of a PineTime companion app, but stuck to go for the linux phone version. Reasons are briefly mentioned in the article about it:
https://lupyuen.github.io/pinetime-rust-...icles/bloc
Things may have moved on since then though. It's not something I've tried so can't give any 1st hand info.

Thank you for the information @wibble. Some great work from lupyuen; information I will make use of for sure. I've been reading a little more and I'm convinced that Flutter is a great choice for developing things for the pinephone for many reasons. The only thing I can see biting you in the bum is incompatibly issues. I really like the idea of one codebase for several platforms. 

I've not done much with GO either TBH. I hear it's an easy language to pick up like dart and I was considering it for another web project of mine but never got around to making a start and now I'm looking at using Flutter for that too maybe.

I'm a systems administrator by day and don't do much programming day to day other than a bit of Python and the odd project in other languages when required so I need something simple to pick up and run with. Both GO and Flutter look like great choices for a guy like myself.

Hopefully I'll have something to share in a month or so.



->drgr33n, you opened a nice thread, but I would like to share another point of view with you and the thread readers: first, I would like to ask you, how do you think, what is the demand for this device (pinephone), I am not sure about the whole world, but I will tell you my demand, and I am strong in my intention, I will be short and will use simple words - Google have more light corporative policies for Android app developers compared to Apple iOS (and macOS too) app developers, the Apple corporative policies are disruptive (the MS corporative policies are even worse); but the technologies used by Google ... haha ... are not developer technologies, they are not even user/customer technologies, simply because they are not really system and native (down to the metal) technologies (OSes are writen in the system C or C++, and also there are other native technologies, which are and cross-platform too (like Qt, Lazarus,...)), Java and Kotlin, etc are mainly virtual techs, they could be nativerized (by VMKits, JITs, etc. staff), but they continue to use Garbage Collector even when they are "nativerized" (C++ uses smart pointers for really automatic memory management..., it is not the only reason to do not use virtual techs, actually, day by day they eat your hardware (with all the updates and new apps installed), and initially powerful and productive it goes slower and not enough, but Android devices are more low cost..., compared to Apple technologies and devices, Apple use system and native technologies in their place (Clang family, Swift..., in the Apple Development Agreement there is a sentence saying "in the store are not allowed deprecated technologies (like Java)"), because of those native technologies day by day the Apple devices are powerful and productive, but they are expensive and their accessories too. I am not against any technology, neither Java, neither Kotlin, neither Javascript (the new hardware eater), but they have to be used in their place and their place is not in the embedded systems! Of course you can use every thing you want in every place you want..., but why in this cases you do not use and develop under Android and iOS?! :-) - this was the second, and after that I am continue with the first, I would like this device to be all, which is not Android and iOS, to can run every pure Linux and Linux app and FreeBSD and app.
Good Luck to everyone! ;-)
  Reply
#7
Flutter evolves rapidly and currently, it supports six operating systems. One developer with just one code base and a bit of tweaking can launch their app on six systems:
Android, iOS, macOS, Windows, Linux, Web. That is one of the many reasons to choose the Flutter framework for your projects
  Reply
#8
IMO: TCL/TK is still the easiest/quickest way.
  Reply
#9
(07-13-2021, 07:52 AM)William Levin Wrote: Flutter evolves rapidly and currently, it supports six operating systems. One developer with just one code base and a bit of tweaking can launch their app on six systems:
Android, iOS, macOS, Windows, Linux, Web. That is one of the many reasons to choose the Flutter framework for your projects
In addition here you can find the results of the Flutter performance test in comparison with native technologies https://www.mobindustry.net/top-7-reason...t-project/
TRANSLATE with x
English
Arabic
Hebrew
Polish
Bulgarian
Hindi
Portuguese
Catalan
Hmong Daw
Romanian
Chinese Simplified
Hungarian
Russian
Chinese Traditional
Indonesian
Slovak
Czech
Italian
Slovenian
Danish
Japanese
Spanish
Dutch
Klingon
Swedish
English
Korean
Thai
Estonian
Latvian
Turkish
Finnish
Lithuanian
Ukrainian
French
Malay
Urdu
German
Maltese
Vietnamese
Greek
Norwegian
Welsh
Haitian Creole
Persian


var LanguageMenu; var LanguageMenu_keys=["ar","bg","ca","zh-CHS","zh-CHT","cs","da","nl","en","et","fi","fr","de","el","ht","he","hi","mww","hu","id","it","ja","tlh","ko","lv","lt","ms","mt","no","fa","pl","pt","ro","ru","sk","sl","es","sv","th","tr","uk","ur","vi","cy"]; var LanguageMenu_values=["Arabic","Bulgarian","Catalan","Chinese Simplified","Chinese Traditional","Czech","Danish","Dutch","English","Estonian","Finnish","French","German","Greek","Haitian Creole","Hebrew","Hindi","Hmong Daw","Hungarian","Indonesian","Italian","Japanese","Klingon","Korean","Latvian","Lithuanian","Malay","Maltese","Norwegian","Persian","Polish","Portuguese","Romanian","Russian","Slovak","Slovenian","Spanish","Swedish","Thai","Turkish","Ukrainian","Urdu","Vietnamese","Welsh"]; var LanguageMenu_callback=function(){ }; var LanguageMenu_popupid='__LanguageMenu_popup';
[/url] [url=javascript:Microsoft.Translator.FloaterShowEmbed()] [url=javascript:Microsoft.Translator.FloaterShowSharePanel()][/url]

TRANSLATE with
COPY THE URL BELOW

[url=javascript:Microsoft.Translator.FloaterOnShareBackClick()]Back[/url]

EMBED THE SNIPPET BELOW IN YOUR SITE

Enable collaborative features and customize widget: Bing Webmaster Portal
[url=javascript:Microsoft.Translator.FloaterOnEmbedBackClick()]Back[/url]
var intervalId = setInterval(function () { if (MtPopUpList) { LanguageMenu = new MtPopUpList(); var langMenu = document.getElementById(LanguageMenu_popupid); var origLangDiv = document.createElement("div"); origLangDiv.id = "OriginalLanguageDiv"; origLangDiv.innerHTML = "<span id='OriginalTextSpan'>ORIGINAL: </span><span id='OriginalLanguageSpan'></span>"; langMenu.appendChild(origLangDiv); LanguageMenu.Init('LanguageMenu', LanguageMenu_keys, LanguageMenu_values, LanguageMenu_callback, LanguageMenu_popupid); window["LanguageMenu"] = LanguageMenu; clearInterval(intervalId); } }, 1);
  Reply
#10
I was going to make some point from the perspective of Free Software, but just look at how much spam / link juice is attracted to a post simply mentioning Flutter!  Oh yeah, it's all teh new hotness, all right!  Big Grin

Oh, who am I kidding, of course I am going to make my point from Free Software perspective.   Big Grin 

All jokes aside, do these locked down platforms (the current incumbents, Android and iOS) really deserve developer attention?  Not in my opinion.  Do your development on Free platforms and under Free licenses.  We finally have an opportunity / platform to do that now, why go backwards?

Of course, if you don't care about any of that, go on back to the (IMO, mundane) discussion of "market share", "features", and "business models", etc.

But ask yourself: Do you really want to make some proprietary app that no one is going to buy anyway?  Or do you want to be a part of advancing the state of technology for the betterment of humanity?
Cheers,
TRS-80

What is Free Software and why is it so important for society?

Protocols, not Platforms

For the most Linux-y experience on your Linux phone, try SXMO!

I am (nominally) the Armbian Maintainer for PineBook Pro (although severely lacking in time these days).
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  PinePhone - boot from microSD laserpyramid 5 299 03-06-2024, 06:37 PM
Last Post: aular
  Are you using the Pinephone as your daily driver? jro 157 105,131 02-18-2024, 11:33 PM
Last Post: aular
  2020 PinePhone Manjaro CE EU for sale, name your price astrojuanlu 7 1,524 02-14-2024, 04:51 PM
Last Post: astrojuanlu
  pinephone is not bootble for the box. ijij 1 462 01-19-2024, 01:29 PM
Last Post: fxc
  Multiple issues with the Pinephone MTXP 12 1,938 12-28-2023, 07:55 AM
Last Post: MTXP
  pinephone repair shop shengchieh 0 383 12-26-2023, 02:42 PM
Last Post: shengchieh
  sudo nano file saving pinephone beta edition CharlesGnarley 4 1,479 12-22-2023, 03:44 PM
Last Post: Kevin Kofler
  Can't get Mobian on PinePhone to recognise USB-C docking bar duncan_bayne 9 6,604 12-04-2023, 02:14 AM
Last Post: Peter Gamma
  Pinephone not booting, always vibrating alexander12 7 4,668 11-22-2023, 06:46 PM
Last Post: Scary Guy
  Linux Kernel development Uturn 10 1,836 11-09-2023, 08:46 AM
Last Post: Kevin Kofler

Forum Jump:


Users browsing this thread: 1 Guest(s)