Hello mr newbie, welcome to our island :) "1. I need to rewrite the whole GUI from scratch. What UI framework to choose and where to get documentation?"
Johan already recommended Spec , I think its the best fit for you. If you want more customisation you can always use Morphic together with Spec. "2. The next task is to do some work on image load (i mean pharo image). I need some handler which fires immediately after image is loaded. How to include my handler in this chain???? My app saves data into the image so i need to manage this and auto-load _my_ application after startup." This can happen in two way, the image provide a method called starUp for when the image starts and shutDown when the image closes. Any object can have these methods and Pharo will always make sure to execute them. Startup scripts are also an alternative , they are capable of firing only the first time you open the image or every time. I will be making a tutorial shortly for them but you can find an example in the mean time in my repo here https://github.com/kilon/makePharo/blob/master/startupPharo.st and I recommend the excellent blog post by Mariano https://marianopeck.wordpress.com/2012/05/12/startuploader-running-startup-scripts-in-pharo/ The nice thing about startup scripts is that they can be per image but also globally for all your images " 3. How to drag-n-drop from the host operation system into pharo application and vice versa? I need to drag-n-drop a list of files from\to file browser." Drag and Drop can be a tricky one because its a Morphic and will require some experience with Morphic. Morph which is basically the base class of all gui element 3 relevant methods. a) dropFiles: b) handleDropFiles: c) wantsDropFiles: PasteUpMorph dropFiles: is the the method that handles dropped files on the background of the Pharo window. Of course PasteUpMorph inherits from Morph . I cannot give you any more info because I never tried to use it. "4. Application deployment. How to strip the unnecessary code from the image? I've heard there is "small image" to add all-i-need-to-run. Where i can download it and how to use it????" There will not be a tool that will do this for you automagically. There is project to bootstrap Pharo. It also depends why you want to get rid of those unecessary packages, if you wanna do it to decrease Pharo size on your disk then unfortunately you wont achieve much because Cuis for example that has 13 times less classes than pharo is only 50% smaller and thats the image alone, obviously VM is same size. If you are worried about quick updates and you dont want your user to redownload pharo , there is a way to update your code via git and github wihout your user having to install git or be github member. You could even auto update in the background. The only Smalltalk that I am aware of that can go bellow 10mbs , which is what is I would call "small" , is spoon that can get even tiny, down to just 1 kb without the vm.