Sencha Cmd needs some coffee

Sencha Cmd needs some coffee

Hi Sencha & The Community!

First of all - this isn't a hate-fest. This is constructive feedback on the way Sencha Cmd has been delivered the public in a drive to make it better. Hopefully any bumps this gets will follow that ethos.

So...

A large number of the Sencha Cmd questions on these forums & Google should already have been answered by the docs, which is evidence that the docs need a look-over by someone who's not familiar with the tech.Vital information should never be in a footnote

See this example:

I was trying to find out why dynamic loading was enabled in my output and I came across a Stack Overflow post where someone posted a command mentioning bootstrap.js.

"What is this?" I thought. So I headed back to the Sencha docs and started reading a section entitled "Generating a Custom Bootstrap" as it looked relevant.

After reading the section, I tried to work out why this line existed:

This file gives the framework the same level of awareness of your application code that it has of the framework code itself

That sounds like something every app will need, so why do I have to manually enable it?!

I then continued reading through more revelations before coming to this point:

Note. This part is also handled automatically for applications generated by Sencha Cmd

...

This was about halfway down the page.

Try and get your head around this.
The disclaimer explaining who needs to read the content was halfway down the page.

...

Why is dynamic loading enabled?

Why is dynamic loading allowed to happen in a the compiled app? I already have a version of the app that dynamically loads classes - it's my dev version.

If the compiled app needs to look on the file system for a class then it's not a compiled app.

Why does the bootstrap file even exist?

It seems like this bootstrap file should just be taken care of by the compiler (If it's even needed). I've read the section on bootstrapping through multiple times and still can't work out why I should know about it.

Why would I be generating my own meta data?

Again, this should clearly be happening automatically as part of the compile. The way the docs on this are structured, it sounds like unless I run the commands to generate various pieces of the meta package then my app won't have them.

Is this correct? If this is vital (which is the impression given by the docs) then why is it not mentioned in the compile "walk-through",
An honest suggestion.

1. Have one guide for people who follow the Sencha best-practices for application structure and one for those that don't. Have them clearly separated and marked as such.

2. Make it as simple as possible to call the compile command:

Code:

sencha compile

Of course the way I think we were all expecting it to work was having the compiler take care of the manifest itself by using the dependency tree, instead of having the developer tell the compiler which folders in needs to run through - completely eliminating the need to manually exclude anything.

3. Summarise the instructions in a nifty numbered list... like this one.

4. Get someone who works with print publications to go over the docs.

---

@Sencha - Please respond to this. I'm far from being the only one having these problems.

This guide covers single-page Ext JS applications that do not use the file structure recommended in Using Sencha Cmd with Ext JS. While the convenient commands like sencha app build won't understand these applications and so cannot be used, you can use lower-level commands provided by Sencha Cmd to produce builds and perform all of the same tasks.

The most significant piece of this process is handled by the Sencha Cmd compiler.

Note that it's ideal for the files for an app to follow the structure described in Using Sencha Cmd with Ext JS. That's because apps that follow the recommended structure let you take maximum advantage of the benefits provided by Sencha Cmd.

The rest of the guide is intended for those that need or just want to go below the "sencha app build" process. The Note you mention was simply a reiteration of the initial admonition to use the higher-level commands.

It seems like this bootstrap file should just be taken care of by the compiler (If it's even needed). I've read the section on bootstrapping through multiple times and still can't work out why I should know about it.

Sencha Cmd v3 is the most frustrating piece of software I have ever encountered. I've been trying to do a simple HTML build from an existing Architect for 5 days now and I just can't get it to work. I have a shipping product but I am completely dead in the water. If anyone has made this work I would really love to hear what you did.

I understand that our perspectives will will different, so here's my view.

The quotes you've provided do fill the gaps I pointed out, but the main problem I had with the guide was clarity

For instance: If the bootstrap.js file is only required for if you're using wildcard, then that should be the very first thing mentioned in the section regarding the bootstrap file. Perhaps the section should be called Using Wildcards in Dev Mode; which would allow people to skip the section entirely if it was of no interest (In my case, my project has about 30-40 controllers - none of which are using wildcards - so screw re-factoring them all at this point).

If all of the information required is within the guide and people are still having all this trouble using the product, then most likely cause is the way the guide is structured.

Sencha Cmd v3 is the most frustrating piece of software I have ever encountered. I've been trying to do a simple HTML build from an existing Architect for 5 days now and I just can't get it to work. I have a shipping product but I am completely dead in the water. If anyone has made this work I would really love to hear what you did.

Sencha Cmd v3 is the most frustrating piece of software I have ever encountered. I've been trying to do a simple HTML build from an existing Architect for 5 days now and I just can't get it to work. I have a shipping product but I am completely dead in the water. If anyone has made this work I would really love to hear what you did.

I got it working in a few hours, simply by following these steps:
1: Build a new application with the sencha cmd 3.
2: Migrate your code into this "skeleton" folder.
3: Make sure not to overwrite and loose essential configuration options in certain files (like index.html, <!-- <x-compile> --> etc)
4: moving my css and sass files etc to the folders which sencha cmd 3 created. (From resources/sass to resources/sass/default/
5: Moved my app.js from root to app/ folder.