Recent

Author Topic: Mobile development - Android & iOS  (Read 38160 times)

Blade

  • Full Member
  • ***
  • Posts: 177
Mobile development - Android & iOS
« on: December 04, 2021, 09:18:42 pm »
well actually i have install 10 testing apps on my android device.
the complains is all abou ie. try to install indy components...
try to open demo lamw projects and belive me NOTHING works...
It is not part of the Lazarus or FreePascal project and the developers have no responsibility over it and no obligation to make it work.

Oddly, nick1965's complaint about trying to use Lazarus for Android has a small bit of legitimacy.  Don't get me wrong, in no way am I excusing being rude or a user not taking the time to read help documentation (including wiki).  The angle that I'm talking about has to deal with expectations, and arguably the Lazarus team should be aware of such.  Ignoring that people would want to develop mobile applications for Android and iOS is strange.  Delphi has positioned itself where it's not just for the desktop, but also for mobile.  People who would be looking at Lazarus as a potential alternative, would obviously be considering this when making comparisons and decisions. 

Probably the most glaring weakness or oversight of Lazarus is exactly that, creating mobile apps.  That Lazarus is seen as not capable in that area, is arguably worrisome and problematic.  And other programming languages/open source IDEs, have been making themselves viable ways to create mobile applications.  LAMW/Laz4Android is a fantastic effort, but them not being more thoroughly integrated into Lazarus, does appear to create a bit of awkwardness that would most obviously become a problem for newbies and beginners.  And LAMW/Laz4Android is only a partial solution, as there isn't any equally viable Laz4iOS project.  When people claim that Lazarus is an alternative, then the weakness in mobile development, can possibly lead to disappointment for some people coming from the Delphi world.

MarkMLl

  • Hero Member
  • *****
  • Posts: 6676
Re: Mobile development - Android & iOS
« Reply #1 on: December 04, 2021, 10:09:30 pm »
in no way am I excusing being rude or a user not taking the time to read help documentation (including wiki).

I think it appropriate to spell out here that while the wiki is useful it is basically "user experiences", and is neither official nor consistently maintained.

The core developers and documenters can only do so much and as such the wiki is enormously useful, BUT if there is a hint of disagreement between the wiki and formal documentation it's the wiki which has to be treated as unreliable... and that sort of thing can normally be resolved promptly by raising the point in one of the forum areas.

Quote
The angle that I'm talking about has to deal with expectations, and arguably the Lazarus team should be aware of such.  Ignoring that people would want to develop mobile applications for Android and iOS is strange.  Delphi has positioned itself where it's not just for the desktop, but also for mobile.  People who would be looking at Lazarus as a potential alternative, would obviously be considering this when making comparisons and decisions.

I'm inclined to agree.

Quote
Probably the most glaring weakness or oversight of Lazarus is exactly that, creating mobile apps.

Detail here for people whose first language is not English. The traditional meaning of "oversight" is "omission, something overlooked". A more recent usage is equivalent to "supervision". It's a word I try to avoid in technical writing because of that ambiguity.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9794
  • Debugger - SynEdit - and more
    • wiki
Re: Mobile development - Android & iOS
« Reply #2 on: December 04, 2021, 10:09:59 pm »
Oddly, nick1965's complaint about trying to use Lazarus for Android has a small bit of legitimacy.  Don't get me wrong, in no way am I excusing being rude or a user not taking the time to read help documentation (including wiki).  The angle that I'm talking about has to deal with expectations, and arguably the Lazarus team should be aware of such. Ignoring that people would want to develop mobile applications for Android and iOS is strange.
First of all, the response anyone gets/got on this forum are responses from the community.

And it is not about ignoring, it is about available volunteers in the team and in the community. People (community and team) volunteer to help with whatever they like to help with. Most will help outside their chosen area, if they know something on the topic. But few will go, pick up something they do know nothing about, and do the full research for someone else.

So, the amount of people who have experience with Lazarus + Android, appears to be relatively small (compared to the size of the community). And if that is the case, answers will take longer. Some people may only read up on the forum once a week. Some may miss the topic at first. Some may think they have the answer, and then it turns out to be wrong and make it worse. Such are the dynamics of a community and/or volunteer driven project.

Take me for an example. I had not seen his questions, but had I seen them, yes I would have ignored them. I have no clue. Never used Laz+Android myself. Don't even know who does, so I couldn't even alert a knowledgeable person to look at it. Not because I don't wont to, but because I got to much else to do.

Quote
Probably the most glaring weakness or oversight of Lazarus is exactly that, creating mobile apps.  That Lazarus is seen as not capable in that area, is arguably worrisome and problematic. 
Maybe, but that will only change if people volunteer. Answer questions, document, supply patches....

Obviously there are already existing people, who supplied what is already there. Not sure if they are all still active and the Android stuff, or if they all read the forum. Maybe some of them are on the mail list. Maybe some are temporarily or permanently busy with other things. Again, all volunteers. Each decide for themself, when and how much.

Quote
And other programming languages/open source IDEs, have been making themselves viable ways to create mobile applications.  LAMW/Laz4Android is a fantastic effort, but them not being more thoroughly integrated into Lazarus, does appear to create a bit of awkwardness that would most obviously become a problem for newbies and beginners.  And LAMW/Laz4Android is only a partial solution, as there isn't any equally viable Laz4iOS project.  When people claim that Lazarus is an alternative, then the weakness in mobile development, can possibly lead to disappointment for some people coming from the Delphi world.
All that may be true. But it is also chicken and egg...

Without advertising what is there, no one will come, and no new volunteers. And without volunteers, it will not progress or maybe just ever so slowly.

But yes, if some wikipage promises to much, then it should be thought to be corrected.
Find out if the author of that page is still active. Leave a note on the wiki's talk page, ask here on the forum, and also ask on the maillist(s). If they are still there, speak to them.



Blade

  • Full Member
  • ***
  • Posts: 177
Re: Mobile development - Android & iOS
« Reply #3 on: December 04, 2021, 10:21:25 pm »
@MarkMLl

Good response.  I agree with most of what you wrote.

Note- probably I should add, for those that might not know or to prevent any confusion, the Free Pascal compiler can of course be used on a wide range of CPUs and OSes (and a greater range than what Delphi can do).  Where with the Lazarus IDE and creating mobile applications, usually it's about the LCL, components, building GUI apps, or the convenience of the process for doing such.
« Last Edit: December 04, 2021, 10:37:02 pm by Blade »

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9794
  • Debugger - SynEdit - and more
    • wiki
Re: Mobile development - Android & iOS
« Reply #4 on: December 04, 2021, 11:12:08 pm »
Sorry going briefly offtopic.

Quote
Probably the most glaring weakness or oversight of Lazarus is exactly that, creating mobile apps.
Detail here for people whose first language is not English. The traditional meaning of "oversight" is "omission, something overlooked". A more recent usage is equivalent to "supervision". It's a word I try to avoid in technical writing because of that ambiguity.

Not following...

Yes, I get "oversight" can be a noun derived from "overseeing" (supervise, look after). But I can't make any sense of that usage in the above sentence.

If it was "glaring weakness of oversight", then yes. There is or may be a lack of supervision.
But it is "glaring weakness or oversight", so "creating mobile apps" is a weak point, or something that got overlooked/missed (an "oversight").

I am seeking here for some oversight (supervision) in my efforts to find an oversight (omission to glean from the provided info). Could you help?

Warfley

  • Hero Member
  • *****
  • Posts: 1499
Re: Mobile development - Android & iOS
« Reply #5 on: December 04, 2021, 11:22:34 pm »
The thing about mobile development with Lazarus is that to be well integrated into Lazarus it needs to integrate into the LCL as a widgetset.

I must confess it's a few years since I've looked into it so no guarantees about the correctness of the following statements. Back then LAMW controls where just rather thin wrappers around the JNI, where the GUI was basically done in (automatically generated) Java which interacted with native code, basically when an event was caused the Java code called the native pascal code, and changes to the gui where sent from the native code to the Java GUI.

This is actually quite a neat idea, and makes sense in that it allows a rather easy integration and iterative extension for different components by "just" implementing a JNI wrapper for these components.
But this approach also means that you can't reuse the LCL structure and components, as well as being specifically tailored to android. So it is a "hotfix by design", i.e. it can never be integrated into the wider LCL ecosystem.

A proper Lazarus integration, such that it is compatible with other platforms in the "write once compile anywhere" principle would require a custom android widgetset. There was the effort on making the "custom drawn" widgetset available for android: https://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android
The custom drawn widgetset is from the idea pretty similar to Firemonkey, i.e. on how delphi supports cross compatibility.  I don't know if this was continued and if so what the current state is.

I think the lack of mobile support is the biggest weakness of Lazarus, especially as mobile platforms have become the most important target for software (Android + iOS make around 55% of the OS market share) and Lazarus is very lacking in that regard.
While I think that LAMW is actually pretty great as it gives a solution to being able to develop for android, and back when I played around with it had a lot of fun with it, in it's current form it is by design not really compatible with the common Lazarus and LCL development in general. That said, the JNI binding technique could potentially be leveraged to build a widgetset. But as already stated, this would require pretty much a complete rewrite.

One Idea I have on my ever expanding list of future projects is to try to build a Pas2JS-Lazarus-Cordova pipeline to create allow for building cross plattform apps on the basis of web technology which works really well on both desktop and mobile
« Last Edit: December 04, 2021, 11:50:59 pm by Warfley »

Blade

  • Full Member
  • ***
  • Posts: 177
Re: Mobile development - Android & iOS
« Reply #6 on: December 05, 2021, 01:15:03 am »
...a Pas2JS-Lazarus-Cordova pipeline to create allow for building cross plattform apps on the basis of web technology which works really well on both desktop and mobile

I do agree that such an approach is viable, as this strategy was kind of pursued by Smart Pascal (and related products).  But, it would appear to also lead to a lot of complexity and frustration with dealing with languages and technologies outside of Lazarus and Object Pascal.  It looks like this route has achieved only moderate success, so far (as I can tell or have seen).  Maybe if there was something more tightly integrated, where it contained the desktop equivalent of Cordova or PhoneGap, it might come off as a stronger option. 

In contrast, Delphi is making mobile development easier and keeping it mainly within the confines of their IDE and Object Pascal.  Among other languages that have open source projects that have kind of pulled off multi-OS development, in their own way, is Lua.  Which comes along with the limitations of scripting languages (slower, security, etc...).  It has interpreters on the major OSes, so didn't need to be coupled with JavaScript (HTML, CSS, or substituting friends).


The thing about mobile development with Lazarus is that to be well integrated into Lazarus it needs to integrate into the LCL as a widgetset...

...A proper Lazarus integration, such that it is compatible with other platforms in the "write once compile anywhere" principle would require a custom android widgetset...

Debatably, this route would be the most preferable, though it appears more difficult or in need of developers to champion it.  It would make Lazarus a more viable alternative, and do more to promote it as a tool for both desktop and mobile development.

Even something like Laz4iOS (as a sister project to Laz4Android), where even though it's not fully supported or integrated into Lazarus, would still go a long way in the public perception of Lazarus in general because of the obvious comparison to Delphi.

Warfley

  • Hero Member
  • *****
  • Posts: 1499
Re: Mobile development - Android & iOS
« Reply #7 on: December 05, 2021, 01:53:13 am »
In contrast, Delphi is making mobile development easier and keeping it mainly within the confines of their IDE and Object Pascal.  Among other languages that have open source projects that have kind of pulled off multi-OS development, in their own way, is Lua.  Which comes along with the limitations of scripting languages (slower, security, etc...).  It has interpreters on the major OSes, so didn't need to be coupled with JavaScript (HTML, CSS, or substituting friends).
I think that a web-technology based approach, if integrated seamlessly, has many advantages over what Delphi is doing. Most importantly, HTML + CSS is actually really good for providing easiely stylable GUIs with little effort. Whenever I used Firemonkey, I found it pretty hard to make some decent looking styles, while with CSS and HTML I don't just think it is easier, but because it is the most widely used GUI technology around, you can find a lot more examples and/or royalty free code and styles online.
And one thing I found, at least back when I used it (well thats also a few years back now) Firemonkey never felt native. Even simple things like Buttons never looked and felt like native buttons. The browser engines on Mobile phones are provided by the OS and are guaranteed to behave like native controls.

Also Firemonkey UIs are really slow, the render-engines of browsers are so highly optimized that they are blazing fast, they can refresh the image at hundreds to thousands of frames a second. Firemonkey often felt laggy, e.g. when opening the side menu.

Debatably, this route would be the most preferable, though it appears more difficult or in need of developers to champion it.  It would make Lazarus a more viable alternative, and do more to promote it as a tool for both desktop and mobile development.

Even something like Laz4iOS (as a sister project to Laz4Android), where even though it's not fully supported or integrated into Lazarus, would still go a long way in the public perception of Lazarus in general because of the obvious comparison to Delphi.
The thing about this is, that LAMW is an android solution through and through. And one thing is, when you develop a mobile app, you usually want the same app for both Android and iOS. This is why most apps are build on web technology and native apps are more of the exception. A solution for Lazarus should focus on unifying at least android and iOS, even if it is incompatible to Desktop. A widgetset would from a users point of view be the best solution, but of course this would also entail the largest development and maintainance overhead.

What I was wondering, as QT5 supports Mobile, wouldn't it be possible to use the already existing widgetset for mobile. But I am simply not knowledgable enough about QT and the corresponding widgetsets for that matter

dbannon

  • Hero Member
  • *****
  • Posts: 2786
    • tomboy-ng, a rewrite of the classic Tomboy
Re: Mobile development - Android & iOS
« Reply #8 on: December 05, 2021, 02:25:52 am »
.....
The thing about this is, that LAMW is an android solution through and through. And one thing is, when you develop a mobile app, you usually want the same app for both Android and iOS. This is why most apps are build on web technology and native apps are more of the exception. A solution for Lazarus should focus on unifying at least android and iOS, even if it is incompatible to Desktop. A widgetset would from a users point of view be the best solution, but of course this would also entail the largest development and maintainance overhead.

Yes, I agree. The desktop and mobile screen are too different a concept, users expect different behaviour.  Canonical spent heaps on Unity mainly trying to make it a desktop (the software) that worked on a mobile device and a desktop machine. Microsoft tried to make a mobile OS that looked and felt like Windows and now have to make do with selling a handful of those silly Windows tablet thingos.

I have not tried to make any Lazarus-Android apps, unlike our friend Nick, I understand the cross over is hard and would need to put some effort in. Effort I cannot spare at present. But I am glad that a small number of Lazarus users are making progress in that direction !

Davo 
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

Blade

  • Full Member
  • ***
  • Posts: 177
Re: Mobile development - Android & iOS
« Reply #9 on: December 05, 2021, 03:38:52 am »
I think that a web-technology based approach, if integrated seamlessly, has many advantages over what Delphi is doing.

I disagree about that point.  This "integrated seamlessly", would likely have to be to make JavaScript, HTML, and CSS virtually invisible.  It appears to me as something very difficult to pull off.  Even in the case of Smart Pascal or pas2js, there will be conflicts between the desktop and web technologies or languages involved, where the user has to have web developer type knowledge to solve.  It then creates a conflict of having to jump over one side of the fence or the other.  Where the Delphi approach limits such issues.  You are more focused on targeting the OS, and web technologies are not on the radar, unless that is what the user is focusing on. 

I think the web technology based approached works better with people who have advanced web development backgrounds, who are then targeting the desktop.  Keep in mind that JavaScript is a "3 or more for 1" package deal, that includes HTML and CSS.  Where the Delphi approach would arguably be better for those that are coming from desktop based or Pascal backgrounds.  To include those that primarily interface or work with the desktop and desktop apps, such as IT professionals, workers at various businesses, etc...

Whenever I used Firemonkey, I found it pretty hard to make some decent looking styles...
...Firemonkey never felt native...

Well, part that is opinion, and another part is how Delphi has implemented it.  Add to that, the FireMonkey framework is something that Delphi bought and then integrated, versus developed themselves.  As with anything else, it can improve with each new version.

...And one thing is, when you develop a mobile app, you usually want the same app for both Android and iOS...

I very much agree with you.  I think this is where a bit of uneasiness about LAMW comes in, despite it being such a great initiative and project.  It's like solving one part of the equation, but not the other.  But, it's what is out there.  Better there is an Android solution, then none.

Preferably, there be a solution for both Android and iOS.  Except to me, and acknowledging the present situation, even if Lazarus had two totally different solutions then that would be better.  If there is Laz4Android, which is totally different from Laz4iOS, at least both exist.  Though even in that scenario, I do think there would be a significant level of cross-over and concepts.

Some years back, it looked like Lazarus users/independent developers were making iPhone apps and did a significant amount of work towards an iOS solution.  Oddly, whenever it looks like an iOS solution is about to come together (to a LAMW level), it seems to get abandoned.  Example, from Simon Choi, https://blog.naver.com/simonsayz/221209784815.

What I was wondering, as QT5 supports Mobile, wouldn't it be possible to use the already existing widgetset for mobile...

Yeah, it would be nice if one of the more advanced users or developers give their opinion on this.

loaded

  • Hero Member
  • *****
  • Posts: 824
Re: Mobile development - Android & iOS
« Reply #10 on: December 05, 2021, 03:51:24 am »
I wrote apps for windows and android with Lazarus and they all worked flawlessly. In fact, my youngest son laid the foundation of reading in this program 3 years ago, and he learned to read by himself in this program before he went to primary school. Currently 7 years old.
My eldest son, on the other hand, can make projects at LAMW and run them easily on his own phone. Currently 14 years old.
They'll probably both be good Lazarus users (and hopefully developers too).
Because instead of complaining, the constant magic question "How am I going to do this?" they ask.
Result Success !!!
Check out  loaded on Strava
https://www.strava.com/athletes/109391137

Blade

  • Full Member
  • ***
  • Posts: 177
Re: Mobile development - Android & iOS
« Reply #11 on: December 05, 2021, 04:41:29 am »
@loaded

To prevent confusion and misunderstandings, letting you know that his thread wasn't created by me.  Not hating on Lazarus (as I like it), or on any projects.  The moderators broke this off from the original thread, "So many bugs in Lazarus Ide".  The context of the post that I made was about possible reasons why the OP might have felt disappointed with Lazarus, in comparison to Delphi.  The OP of that thread was having various self-inflicted issues, which included trying to get LAMW installed and working.

I'm not saying that it isn't possible to build Android apps with LAMW (nor do I think that's Warfley's position). By the way, congrats to your son.  In regards to where the conversation was going, we were discussing that Delphi has a comprehensive solution for developing mobile applications for both Android and iOS (FireMonkey Framework), where Lazarus doesn't yet.  Then Warfley and I took the conversation towards possible ideas.  Myself, and possibly others, would like to see Lazarus in a more favorable position in terms of public perception, usability, and in comparison to Delphi.

Warfley

  • Hero Member
  • *****
  • Posts: 1499
Re: Mobile development - Android & iOS
« Reply #12 on: December 05, 2021, 05:41:33 am »
I disagree about that point.  This "integrated seamlessly", would likely have to be to make JavaScript, HTML, and CSS virtually invisible.  It appears to me as something very difficult to pull off.  Even in the case of Smart Pascal or pas2js, there will be conflicts between the desktop and web technologies or languages involved, where the user has to have web developer type knowledge to solve.  It then creates a conflict of having to jump over one side of the fence or the other.  Where the Delphi approach limits such issues.  You are more focused on targeting the OS, and web technologies are not on the radar, unless that is what the user is focusing on.
You also have the same conflict in Delphi. Firemonkey is a completely different framework that is completely incompatible with the VCL. If you come from the VCL things like layouting or styling of Firemonkey applications are completely different. A web technology based framework for GUI development would be similarly not compatible with the LCL as Firemonkey is not compatible with the VCL.

Of course with things like pas2js the difference is a little bit larger, as the underlying web technology completely alters some of the behavior of the code (e.g. that every object in pas2js is internally a javascript object and therefore basically a dynamic dictionary).
But a more pressing issue here is that the existing packages and libraries, if they aren't pure high level algorithmic, would probably not work (i.e. everything that contains API calls or something similar). But there is also an alternative to that. The Webapp solutions, like react, allow to bind the javascript code against native libraries. So a solution that is similar to LAMW could be implemented, where the interface is build using web technology, and the pascal code is compiled to a native library, where then wrappers are used for hooking up the GUI controls to the underlying pascal code.
Basically you could build the same thing as Firemonkey, but rather than having an OpenGL rendering interface drawing all the UI, use the browser to render the UI. This would in the long term potentially even be less effort to develop and maintain than Firemonkey is.

Something like that could potentially even be implemented as an LCL widgetset.
But with this discussion I think we are loosing ourselves in hypotheticals, which, while neat to think about, are simply out of reach due to the massive development it would take. A more reasonable and archivable approach here, and what I want to experiment on somewhen I have a little bit more free time, would be to simply use Pas2JS with cordova to develop cross plattform apps, that simply use Pascal as a language, but are not necessarily compatible with the usual FreePascal/Lazarus ecosystem.

I think the web technology based approached works better with people who have advanced web development backgrounds, who are then targeting the desktop.  Keep in mind that JavaScript is a "3 or more for 1" package deal, that includes HTML and CSS.  Where the Delphi approach would arguably be better for those that are coming from desktop based or Pascal backgrounds.  To include those that primarily interface or work with the desktop and desktop apps, such as IT professionals, workers at various businesses, etc...
Not necessarily. You could easiely build a framework that hides all the HTML and CSS, the same way the LCL hides the underlying technology through the widgetset system
I personally would preferr to have HTML and CSS because it is simply more powerful than the conventional GUI editors you have, e.g. in Lazarus. If I want to have a custom tyled checkbox, I basically have to implement the drawing code myself using the Canvas. With HTML/CSS I can simply use CSS to edit everything about the appearance without having to implement the drawing algorithms myself.
Thats for example also the reason why the QT or JavaFX libraries for GUI development chose to implement CSS for styling of the GUI components, even though it is not even build on web technology.


Well, part that is opinion, and another part is how Delphi has implemented it.  Add to that, the FireMonkey framework is something that Delphi bought and then integrated, versus developed themselves.  As with anything else, it can improve with each new version.
Yes, the thing I think was the single bad design decision with Firemonkey was, to implement everything new from scratch. The advantage of using web technology is that already all of the hard stuff is made for you. HTML and CSS are already doing exactly what Firemonkey wants to do, they are a technology for building GUIs that are able to adept to any screen and resolution dynamically, utilize all the different forms of user input and allow for a high degree of configurability.
The web is the single most well tested technology on the planet. Around half of all humans have access to the internet, using HTML+CSS powered websites for potentially hours a day. All of this experince is considered by expert comitees developing and refining the webstandards over the past decades.
HTML and CSS engines are freely available under OpenSource licenses. Engines like Blink or V8 (as part of Chromium) are also some of the most well tested and optimized pieces of software in existance.

Firemonkey basically tried to implement the very same thing from scratch. Of course it will be worse, how couldn't it be. Don't get me wrong Firemonkey is actually quite good, you can see and feel all the developer hours that went into it. It's just that it is still worlds apart from the state where webtechnology is. Both from the implementation and optimization, but also from the usability.

Software requires time, development time and testing time to get better. When I started using Lazarus in version 0.xx it was much worse then it is now, simply due to more development effort, refinments and more users giving feedback. The same is true for Firemonkey it tries to do basically the same as the already existing web technology does, just that the web technology is 30 years ahead in the devlopment cycles.
One thing in programming is that one should not try to reinvent the wheel. IMHO Firemonkey could have been much better if they would have just said, rather than trying to implement everything themselve, to just use a browser for the whole rendering and stuff. They could have completely abstracted from the underlying technology, build all the Pascal component structure underneath like people know it from the VCL, but just rather than trying to write their own styling and rendering engine, use what has already proven itself and stood the test of time.

I very much agree with you.  I think this is where a bit of uneasiness about LAMW comes in, despite it being such a great initiative and project.  It's like solving one part of the equation, but not the other.  But, it's what is out there.  Better there is an Android solution, then none.

Preferably, there be a solution for both Android and iOS.  Except to me, and acknowledging the present situation, even if Lazarus had two totally different solutions then that would be better.  If there is Laz4Android, which is totally different from Laz4iOS, at least both exist.  Though even in that scenario, I do think there would be a significant level of cross-over and concepts.

Some years back, it looked like Lazarus users/independent developers were making iPhone apps and did a significant amount of work towards an iOS solution.  Oddly, whenever it looks like an iOS solution is about to come together (to a LAMW level), it seems to get abandoned.  Example, from Simon Choi, https://blog.naver.com/simonsayz/221209784815.
Sure having LAMW is nice, and defenetly better than not having it. Back when I used it I was quite amazed that this rather hacky solution was easier to use than the official android studio :D
But what I think is that at some point, if Lazarus wants to compete with other solutions, not just Delphi but also things like Xamarin, QT, React or others on the mobile market, there needs to be an integrated solution. And I think utilizing the widgetsets and sticking to the "write once compile anyhwere" approach of the existing lazarus ecosystem would be the best solution here.

Because to be honest, I really like using Lazarus, and if I have to write a GUI application for Windows or Linux it is usually the development environment of choice. But if I had to develop a mobile app, even if there was an Laz4iOS and both LAMW and Laz4IOS would both be of great quality, I would not chose lazarus, because even though I like it really, I would not want to do twice the effort for building the same app against two different frameworks, if there exist solutions out there which let me do it in one.
Imagine pitching this to a customer: "Yes, ok I am going to develop the Android and iOS app, but it will cost you twice as much because the technology I am using requires to build evrything from scratch for each system". If I where that customer, I would simply ask why you would use this technology over the alternatives that don't require twice the effort. And most customers would probably then rather hire someone using the technology that doesn't cost them twice as much for the same work
« Last Edit: December 05, 2021, 05:48:48 am by Warfley »

loaded

  • Hero Member
  • *****
  • Posts: 824
Re: Mobile development - Android & iOS
« Reply #13 on: December 05, 2021, 06:09:04 am »
@loaded
To prevent confusion and misunderstandings, letting you know that his thread wasn't created by me. 

You don't need to worry, you can relax.
I know where and how the subject started. Thank you for your congratulations.

If I where that customer, I would simply ask why you would use this technology over the alternatives that don't require twice the effort. And most customers would probably then rather hire someone using the technology that doesn't cost them twice as much for the same work

According to my experience;
In general, customers are uninterested in technology *. Price/performance is important to them.
The rest is not important to them. The important thing is;
He looks at how you will get the ship to the port in storms.
I mean, your captaincy.

*There may be a misunderstanding about the term technology here. Technology used by the developer, not the technology used by the customer
« Last Edit: December 05, 2021, 06:13:17 am by loaded »
Check out  loaded on Strava
https://www.strava.com/athletes/109391137

Blade

  • Full Member
  • ***
  • Posts: 177
Re: Mobile development - Android & iOS
« Reply #14 on: December 05, 2021, 07:11:48 am »
Sure having LAMW is nice, and defenetly better than not having it. Back when I used it I was quite amazed that this rather hacky solution was easier to use than the official android studio :D

...But if I had to develop a mobile app, even if there was an Laz4iOS and both LAMW and Laz4IOS would both be of great quality, I would not chose lazarus, because even though I like it really, I would not want to do twice the effort for building the same app against two different frameworks, if there exist solutions out there which let me do it in one.

Imagine pitching this to a customer: "Yes, ok I am going to develop the Android and iOS app, but it will cost you twice as much because the technology I am using requires to build evrything from scratch for each system". If I where that customer, I would simply ask why you would use this technology over the alternatives that don't require twice the effort. And most customers would probably then rather hire someone using the technology that doesn't cost them twice as much for the same work

Well, this kind of depends on the programmer.  There are many hobbyists, workers, and independent software developers that would be making the decision for themselves.  Additionally, the person may not be such a polyglot programmer (so much easier decision) or whoever they are working for leaves it up to them to decide.

It also wouldn't be "twice the effort", and would come down to various percentages.  A lot of the business logic would be the same.  If there was a Laz4iOS, I believe it would resemble Laz4Android as much as possible.  Just because the different teams would likely be collaborating with each other through e-mail or the forum.  In the hypothetical situation of a Lazarus user using both Lazarus Android Module Wizards and Lazarus iOS Module Wizards, the user would keep as much code as they could, the same.  Will that be 50% or 99%, who knows for sure.  But, even in the preferable situation that you described, where Lazarus had widgetsets that could target both Android and iOS, there is going to be some differences in coding to more specifically target features of the different OSes.

...You also have the same conflict in Delphi. Firemonkey is a completely different framework that is completely incompatible with the VCL. If you come from the VCL things like layouting or styling of Firemonkey applications are completely different. A web technology based framework for GUI development would be similarly not compatible with the LCL as Firemonkey is not compatible with the VCL...

I think that part of the FireMonkey problem was that it wasn't developed in-house.  FireMonkey had different ways and thinking from when it was bought, then the Delphi team had to "force" it to fit.  "Management has bought this mobile solution, so make it work."  It is way more likely for a Lazarus solution to be more thoroughly integrated to what presently exists and how people do things.

If the argument is that the mobile solution is going to be somewhat incompatible anyway, then that leads to the argument that separate Lazarus solutions for Android and iOS could be just about as tolerable.  More likely than not, there would be separate developers/teams/projects that would be focused on the different major mobile OSes of Android and iOS.  A certain degree of specialization seems unavoidable.
« Last Edit: December 05, 2021, 07:16:22 am by Blade »

 

TinyPortal © 2005-2018