Legoless/Alpha

Log all installed applications

Legoless opened this issue · 5 comments

Create a list of installed applications on device by checking URL schemas

Does you have any icon for Applications list plugin? What is practice for icons in pull-request? Should we create them ourself?
I'm currently working on this issue and close to finish it but icon really stops me :).

Currently we do not have an icon for that, so you are free to create it yourself. Let me know if you need any help with it.

The current practice is to have the icon drawn in Core Graphics (I really want to avoid shipping external resources). So all the icons you currently see are also drawn like that. Take a look at one of the plugins for example, such as screenshot plugin.

Usually what I do is: design the icon in Photoshop or Illustrator and import it into PaintCode, which generates Core Graphics code for me.

The general way to add an icon is:

  1. Create an Assets folder in plugin
  2. Create a subclass that will represent the icon - extend ALPHAAsset class
  3. Set the drawingSize and drawingBlock properties, see example: https://github.com/Legoless/Alpha/blob/master/Alpha/Plugins/Screenshot/Assets/ALPHAScreenshotIcon.m

DrawingSize property tells the system of the default icon size, this is used to calculate the proper scale. In general it is fine, if you leave it as it is by default. In either case, drawing block will gets a CGRect when called, so icon must be drawn dynamically according to the provided frame rect.

Thanks for great comment. I really had implemented my icon by this way as well as has used ALPHAScreenshotIcon.m as an example. I think we can use this comment as some kind of documentation for wiki-pages.
As well I'm close to finish my work on Applications list.
Currently it uses private API so we are getting truly list of all apps. I'm working on categories as User,System and Internal apps.

Yes, you are correct, Wiki really needs a lot of work. I'll do my best to update it, but it will take some time.

It is fine if you use private API, I'm doing that on several places inside Alpha. As long as it builds via CocoaPods, because linking private frameworks with CocoaPods is not yet possible (or I just can't find a normal way).

For now it is not meant for Apps to ship with Alpha to the App Store, but we'll separate that functionality later in the future, so certain plugins will be possible to be shipped. Might need to add a disclaimer to the readme though.

I have pushed pull-request for this feature.
#38 Applications List Plugin