After reading Michael Hichwa's blog post about APEX 4.2.2 where he mentions the patch set includes a major upgrade of all 18 productivity and all 16 database sample applications, I decided to install all of them again and check them out.
Those apps are a great way to see how to do certain things and see working applications behind the scenes. The packaged applications you first have to unlock before you can see the pages and source.
As APEX is meta-data driven you can also query for specific information.
I was for example interested in knowing which apps where using the Responsive Design Theme (Theme 25). Following query shows you per application which theme is used.
As you can see the sample apps are using Blue Responsive (theme 25) and most of the packaged apps are using the Cloud Apps theme. As those also have a mobile version, you can see the JQuery Mobile Smartphone theme is used there too.
select a.application_name, a.alias, a.compatibility_mode, a.pages, a.installation_scripts,
listagg(t.theme_number, ',') within group (order by t.theme_number) as theme_numbers,
listagg(t.theme_name, ',') within group (order by t.theme_name) as theme_names
from apex_applications a, apex_application_themes t
where a.application_id = t.application_id
group by a.application_name, a.alias, a.compatibility_mode, a.pages, a.installation_scripts
order by 1
Here's the result:
The sample and packaged apps are not only nice examples (and useful apps), but they also contain some plugins that are not on the official Oracle Plugins page.
There are 21 plugins used in the sample and packaged apps. But two I believe are the same (CSS Bar Chart vs CSS Bar Charts and Slider vs APEX Slider), so that brings the total to 19 plugins to checkout!
And there are some really nice ones, like the Gantt Chart (completely in css, so works on the iPad) :
Running following query shows you all the plugins in your workspace and in which application it was used:
select p.plugin_type, p.display_name, p.name,
count(a.application_name) as nbr_app_using_plugin,
listagg(a.application_name, ',') within group (order by a.application_name) as applications
from apex_appl_plugins p, apex_applications a
where p.application_id = a.application_id
group by p.plugin_type, p.display_name, p.name
order by 1,2
Here's the result:
I would definitely recommend having a look at the apps, the APEX team did a nice job on those.