As an app developer, what do you miss?

You had a new idea for an app or wanted to add a new feature (server/app).
You looked at the documentation and maybe at how other apps were written.

Did you miss something? Was implementing your idea harder than it should be? Do you have ideas on how to solve the problem?

Please add your list of issues along with both your general PHP and Nextcloud development skill levels to this thread.

Please note that in order to keep this thread “clean”, I won’t reply in here, but separate issues will eventually be created to deal with specific problems.

2 Likes

Hello,

I think the entry is very hard for non-professionals.
I am still fighting my way though the issues with the MP3 Player. I think I got pretty far with my limited knowledge, but it took quite some days.

In general xCloud is a very flexible - and due to this - complex environment. getting your way through the classes is not easy. examples are limited.

My main issues:

Examples
(not your issue) you can only search github within one repository (at least I did not find anything more).
if you want to search for codes to reuse, you need to step through the major repos of xCloud and do a codesearch there. can take some time.

complexity & docu
I was searching for a way to debug issues and needed to write to the logfile.
Docu is here: https://doc.owncloud.org/server/9.0/developer_manual/app/logging.html?highlight=logging
but why is it so complex?
I found myself the following one-liner. why make it too complex?
\OCP\Util::writeLog('mp3_player', 'message', \OCP\Util::DEBUG);
it workes - but my limited knowledge does not explain to me why the official docu is so complex compared this.

I might not the best reference - but I think there are a lot of non-pro-starters which are facing the same high walls at the beginning

  • PHP “classic”: advanced
  • PHP Object-Oriented: beginner
  • xCloud: beginner
4 Likes

What I am missing first: A searchable API documentation with more than just class-, method- and member names.
In addition some usage examples would be helpful as well.
An oversight of ‘how is an app structured and why ist the structure as it is’ might help understanding better what we are doing;-)

But: The community is helpful an enthusiastic! This is a good start!!!

Holger

8 Likes

I actually started developing xCloud apps 3 weeks ago, and was happy to find my way in 2 days.
I can tell you the documentation was not really helpful.

I’d like one guide to get started to have just a static app running. (it might sound stupid, but I just need static apps :slight_smile: )
The apptemplate was the most helpful resource.
I really find it complicated the way the folder is organize, and I still don’t understand it. I’d like to have a strongly opinionated structure, meteor is good at that. You could have the same, describe every folder, and every files there, and what it should contain. (and then let people go crazy if they want, but a strong opinion for beginners is nice)
I have still no idea where to load javascript, where to register admin templates… It is confused for me.

I also miss examples about the API usage, where I can get the groups of a user, if it is loggedin, where can I get the list of installed apps… Things like that.

But anyway, I found my way, and I created 2 apps, and thinking about a 3rd one, here is the list:

It is very alpha, but if you have some advices, let me know!

Also, I miss security considerations. There is quiet a lot on the documentation, which is good, but I have to admit, I’m pretty scared to add vulnerabilities to my cloud. I think the best (and I think it is the case) would be to make apps unharmful by default, and only if the app creator specify some flags, then the apps can turn powerful, and leak important data. (with static apps, I should be fine :slight_smile: )

My 2 cents :slight_smile:

PHP: beginner
xCloud: beginner

3 Likes

As an app developper for some time (but with limited time, I do not work full time on owncloud/nextcloud), what I’m missing most is a global knowledge of core internal code :
how does the login process work
how does the file uploading work
where can I find infos about oc_filecache
etc.

Another big problem is the constant refactoring of code in core (for instance, lastly, the OC_User::login disappears without explanation nor documentation on how to replace that function).

I understand that (good) doc is hard to do and time consuming. But I think it’s the most usefull point for a developper (with access to code, but we’re speaking of free software, he :slight_smile: ).

ocdev is nice tool to initiate an app, even if some files seems strange to my eyes.

What is super nice/great/cool is that one can ask on IRC and get direct answer from core dev (thx to them :heart:).

3 Likes

Hello,

I am starting to develop a new application for Nextcloud, i am computer engineer with 10 years of backend development, so my expirience with javascript or html is limited, and with php is close to zero (just some technical knowledge) :slight_smile:

I have set some javascript code starting from the basic “Hello World” application published in the site, my next sttep would be use one javascript or other depending on the basic navigation bar, but i am a bit lost at this point, how can i control the flow of the application throught the navigation/index.php file?

Thanks!