== Dev Week -- Ubuntu Technology overview -- mhall119 -- Tue, Jan 31st, 2012 == {{{#!irc [17:00] hi everybody! [17:00] so this is going to be a short session, only 30 minutes [17:00] Logs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session. [17:00] Most of what I'll be talking about here will be covered in more detail in other sessions [17:01] so Ubuntu as a development platform provide a number of unique features that, as an application developer, you will probably want to work with [17:02] I'm sure you all know Unity, the default desktop shell since Ubuntu 11.04 [17:02] but Unity is more than just a desktop, it's also a development platform that your apps can integrate with [17:03] The launcher will use normal .desktop files, but you can also add what are called "QuickLists", a set of options for your application that are made available through the Unity interface [17:03] your app doesn't even nee to be running [17:04] for example, Thunderbird has QuickList items for composing a new email, or opening the address book [17:05] in the Dash we have Lenses which let users quickly find content, both on their computer and off the internet [17:06] we ship a set of default lenses, but it's easy to add your own, or even provide an additional "scope" to feed content from your application into any of the existing lenses [17:06] there are currently over 50 lenses and scopes being developed for Unity [17:07] Like QuickLists, your lenses and scopes will be available to users even when your application isn't running [17:07] it's all integrated into the desktop [17:07] in the top panel of Unity we have application indicators [17:08] Indicators provide a more useful and user-friendly interface to application that are running, but may not have an active window [17:08] they also let us group similar functionality and information [17:09] for example, all your message notifications are available in the messaging indicator [17:09] and you can control your speaker volume and music playback from the sound indicator [17:09] all of these provide APIs that your application can use [17:10] pawel_st asked: ​ If I'm not mistaken, the current lens architecture & API assume all lenses are daemons. This has implications when more and more lenses are added to the system. What was the rationale for this architecture? Is there an alternate approach? [17:10] so the rationale for keeping them separate is that we don't want a problem in one of them to crash everything else [17:11] right now if a lens or scope crashes, everything else keeps working, and Unity will reload the daemon process for that one lens and try it again [17:11] join #ubuntu-unity if you want to discuss more technical details about the implementation [17:12] satanselbow asked: Is this section about developing for Ubuntu or Unity? [17:12] this session is giving an overview of Ubuntu's technologies (of which Unity is a big one), that you are likely to encounter during the rest of the week [17:12] jincreator asked: Why indicator-applet need whitelist? It's really hard for people to add their applications at indicator. [17:13] we want to move everything to using application indicators, but some apps haven't yet upgraded and are still using the gnome systray icons [17:14] for those that need a systray icon, you can whitelist them so they are displayed in Unity [17:14] !q [17:14] laza36 asked: ​ What's an example for a scope that gets installed as a default? [17:14] the default lenses are for Applications, Files and Music [17:15] the Music lens will show both local music, and things available for purchase through the U1 music store [17:15] there are also scopes written by community members that will feed music options from services like Spotify into the Music lens [17:16] One of the main advantages of lenses is that they allow other people to write scopes to feed results into them [17:16] Kvrmurthy asked: What are lens and scopes? [17:17] https://wiki.ubuntu.com/Unity/Lenses and https://wiki.ubuntu.com/Unity/Lenses/Guidelines give a pretty detailed description [17:17] but the short answer is that Lenses display content, and Scopes supply content [17:18] lenses will be discussed in much more detail at 1900 [17:18] I encourage you to stick around for that [17:18] Many of you have probably seen the new HUD prototype [17:19] Since Unity is exporting application menus over DBus to display them in the top panel, that also means we can use that data for other interesting things [17:19] which is what the HUD does, allowing you to search for menu action without having to know where they are [17:19] calmpitbull asked: just got in :) what is the best way to start programing my own lens, and where to start [17:20] calmpitbull: stick around for the 1900 UTC session and they will cover all of that [17:20] outside of Unity we also have the Ubuntu One cloud syncing service [17:20] There are 10 minutes remaining in the current session. [17:20] Ubuntu One lets users sync files between multiple computers, but it also provide an API for application developers to use [17:21] for example, the Tomboy notes application uses Ubuntu One to sync it's note data [17:21] and there is a new API in the works for syncing key-value data, called the U1DB [17:21] there will be a session on Thursday covering both of those [17:22] then we have the Software Center and http://developer.ubuntu.com, which provide application developers an easier way of distributing their application on Ubuntu [17:22] there is even support for selling commercial applications through the Software Center [17:23] and we have a dedicated Application Review Board (ARB) that will help you with that process [17:23] nava asked: we know unity is API for all (tablet,tv,phone) and also we know all mobile OS have a sdk , what about ubuntu ? [17:24] So this collection of technologies, together with the foundation of Ubuntu itself, will essentially be your SDK [17:25] we have tools such as Quickly that will get you started and automate a lot of the work around packaging [17:25] Ubuntu does not force you into specific programming languages or toolkits though, you can use whatever you're comfortable with as long as it's available on Ubuntu [17:25] There are 5 minutes remaining in the current session. [17:26] and best of all, All of these APIs are going to be the same, whether it's Ubuntu on desktop, TV, tablet or phone, you don't need to learn different technology [17:26] jrzabott asked: I used both synapse, like the unity menu... but i still have the feeling that synapse is more efective for the commom and home user... it have more speed, and it is lighter... If we put more daemons, lens, scopes and etc... i'm affraid it get worse... what do ya think? [17:26] I'm not familiar with synapse, so I don't really have an opinion [17:26] rich3 asked: You mentioned Dbus. what is dbus? [17:27] DBus is a low-level messaging system, it allow different processes to communicate with eachother, without being tied to eachother [17:27] For example, Scopes and Lenses get a DBus message from the Dash when you enter a search, and then they send DBus messages back to the Dash with their results [17:27] pawel_st asked: ​ is lens/scopes api stable/going to be stabilized with 12.04; will backwards compatibility be maintained from now, or is it still a moving target? [17:28] the lens API had to be changed between Oneiric (11.10) and Precise (12.04), because the original way of doing thing wasn't going to be efficient enough [17:28] but the new API should be all but set in stone [17:28] the changes to the API, by the way, were not very drastic [17:29] I was able to update my code in just a couple of hours [17:29] nava asked: we have tv with unity 2d (Qt) ,is Qt main language for also mobile and tablet ? or sth. else [17:29] Both Qt and GTK are first-class toolkits in Ubuntu [17:30] The TV demo was done in Qt and Unity-2d, but that won't matter from the perspective of an application or lense developer }}}