[Pharo-project] [ANN] Presenty UI framework
Hello. I am glad to announce Presenty - new user interface framework for Pharo (with MIT license). I publish my current version on http://www.squeaksource.com/Presenty.htmland write first articles about Presenty on blog http://smalltalk-presenty.blogspot.com There are some problems with current implementation. But step-by-step I fix it and improved it. And I have many ideas about Presenty future. Main goal of Presenty is platform independent programming of user interface: Pharo can run your application on any OS. Presenty can present your application on any OS. With Presenty you can easilly write UI applications which can be configured for all "user" platforms: mobile phones, tablets, desktop computers and others. Presenty is based on Morphic and I think morphic can simulate every platform appearance and behavior. And I think simulation is easest then supporting native backends. I have two commercial applications for my company which based on Presenty. So it is really usable although many common UI stuff absent and some bugs exist. One is touch screen oriented application (for basic computer, not mobile device) and second is basic desktop application (driven by mouse and keyboard). It is different applications for different kind of users but its use same components of tasks and domain objects. So when we implement new logic of user interraction it appears on both applications but user takes it with different look and feel. There is problem with speed of presenty application. For my case cog performance solve it. So I don't worry about it. But problem relates to #veryDeepCopy method of morphs. It is very very slow. This method is used for view creation from prototype morph object. I have fix with special methods for copy prototype morph. But I don't use it yet. Now I prepare presentation for ESUG. So I can take into account of all your comments and questions. Best regards, Denis
denis excellent! I want to have a look at it. Do you know how I could see the video in big? Stef On Aug 7, 2011, at 8:23 PM, Denis Kudriashov wrote:
Hello.
I am glad to announce Presenty - new user interface framework for Pharo (with MIT license). I publish my current version on http://www.squeaksource.com/Presenty.html and write first articles about Presenty on blog http://smalltalk-presenty.blogspot.com
There are some problems with current implementation. But step-by-step I fix it and improved it. And I have many ideas about Presenty future.
Main goal of Presenty is platform independent programming of user interface:
Pharo can run your application on any OS. Presenty can present your application on any OS.
With Presenty you can easilly write UI applications which can be configured for all "user" platforms: mobile phones, tablets, desktop computers and others. Presenty is based on Morphic and I think morphic can simulate every platform appearance and behavior. And I think simulation is easest then supporting native backends.
I have two commercial applications for my company which based on Presenty. So it is really usable although many common UI stuff absent and some bugs exist. One is touch screen oriented application (for basic computer, not mobile device) and second is basic desktop application (driven by mouse and keyboard). It is different applications for different kind of users but its use same components of tasks and domain objects. So when we implement new logic of user interraction it appears on both applications but user takes it with different look and feel.
There is problem with speed of presenty application. For my case cog performance solve it. So I don't worry about it. But problem relates to #veryDeepCopy method of morphs. It is very very slow. This method is used for view creation from prototype morph object. I have fix with special methods for copy prototype morph. But I don't use it yet.
Now I prepare presentation for ESUG. So I can take into account of all your comments and questions.
Best regards, Denis
denis
excellent! I want to have a look at it. Do you know how I could see the video in big?
I found it. :) On youtube this is better. Question: Do you have a way to generate the code for the prototype one you have created one by direct manipulation? A prototype is like a specification of certain attributes? Question: how do you deals with change notification and update? It would be nice to see with a more striking example how you can put a different presenter for the list. Is the red frame also the presenter? how do we save and publish UI on monticello? Stef
Stef
On Aug 7, 2011, at 8:23 PM, Denis Kudriashov wrote:
Hello.
I am glad to announce Presenty - new user interface framework for Pharo (with MIT license). I publish my current version on http://www.squeaksource.com/Presenty.html and write first articles about Presenty on blog http://smalltalk-presenty.blogspot.com
There are some problems with current implementation. But step-by-step I fix it and improved it. And I have many ideas about Presenty future.
Main goal of Presenty is platform independent programming of user interface:
Pharo can run your application on any OS. Presenty can present your application on any OS.
With Presenty you can easilly write UI applications which can be configured for all "user" platforms: mobile phones, tablets, desktop computers and others. Presenty is based on Morphic and I think morphic can simulate every platform appearance and behavior. And I think simulation is easest then supporting native backends.
I have two commercial applications for my company which based on Presenty. So it is really usable although many common UI stuff absent and some bugs exist. One is touch screen oriented application (for basic computer, not mobile device) and second is basic desktop application (driven by mouse and keyboard). It is different applications for different kind of users but its use same components of tasks and domain objects. So when we implement new logic of user interraction it appears on both applications but user takes it with different look and feel.
There is problem with speed of presenty application. For my case cog performance solve it. So I don't worry about it. But problem relates to #veryDeepCopy method of morphs. It is very very slow. This method is used for view creation from prototype morph object. I have fix with special methods for copy prototype morph. But I don't use it yet.
Now I prepare presentation for ESUG. So I can take into account of all your comments and questions.
Best regards, Denis
2011/8/7 Stéphane Ducasse <stephane.ducasse@inria.fr>
Question: Do you have a way to generate the code for the prototype one you have created one by direct manipulation? A prototype is like a specification of certain attributes?
No. Prototype is just basic morph. When guide requested to show presenter it search saved prototype for presenter and execute "prototype veryDeepCopy" to create view instance. So there is no need to support specification objects. It is all basic morphs. Question: how do you deals with change notification and update?
I use announcements. Every presenter has announcer and every task has announcer. In concrete application you can use it as you like. Presenty not provide concrete approach for this. Now Presenty has no aspect adapters for editing model. My business application initially based on meta-descriptions so Presenty has only class PtyDataField with description and value. And PtyFieldModel class which can notify about field value changes. Arbitrary object stuff is absent. But I started to implement it. It would be nice to see with a more striking example how you can put a
different presenter for the list.
I show it in next screencast and of course on esug presentation. Purpose of current screencast is show how specify presenter appearance and how program presenters. Is the red frame also the presenter?
No. It is view of presenter when no prototypes exist for it. I implement it this way to easy notice what part of ui not designed
how do we save and publish UI on monticello?
Stef
This is good question. No solution for this yet. And I don't know how easilly it can be done. All prototypes of application holds in "guide uiBuilder prototypesManager" (PtyPrototypesManager instance). So special way to store this object should be implemented. Maybe solutions from UI designers can be used. For my application I just save this object to "skin" file and load it when needed.
On Aug 7, 2011, at 9:53 PM, Denis Kudriashov wrote:
2011/8/7 Stéphane Ducasse <stephane.ducasse@inria.fr> Question: Do you have a way to generate the code for the prototype one you have created one by direct manipulation? A prototype is like a specification of certain attributes?
No. Prototype is just basic morph. When guide requested to show presenter it search saved prototype for presenter and execute "prototype veryDeepCopy" to create view instance. So there is no need to support specification objects. It is all basic morphs.
I think that it would be nice to be able to turn a prototype into a class definition. Because as igor said been able to edit code is often a good way to reuse.
Question: how do you deals with change notification and update?
I use announcements. Every presenter has announcer and every task has announcer. In concrete application you can use it as you like. Presenty not provide concrete approach for this. Now Presenty has no aspect adapters for editing model. My business application initially based on meta-descriptions so Presenty has only class PtyDataField with description and value. And PtyFieldModel class which can notify about field value changes. Arbitrary object stuff is absent. But I started to implement it.
It would be nice to see with a more striking example how you can put a different presenter for the list.
I show it in next screencast and of course on esug presentation. Purpose of current screencast is show how specify presenter appearance and how program presenters.
Is the red frame also the presenter?
No. It is view of presenter when no prototypes exist for it. I implement it this way to easy notice what part of ui not designed
how do we save and publish UI on monticello?
Stef
This is good question. No solution for this yet. And I don't know how easilly it can be done. All prototypes of application holds in "guide uiBuilder prototypesManager" (PtyPrototypesManager instance). So special way to store this object should be implemented. Maybe solutions from UI designers can be used. For my application I just save this object to "skin" file and load it when needed.
Having a class and and at load time you just do MyStyle new and you get your style to add to your style database. Stef
2011/8/8 Stéphane Ducasse <stephane.ducasse@inria.fr>
On Aug 7, 2011, at 9:53 PM, Denis Kudriashov wrote:
2011/8/7 Stéphane Ducasse <stephane.ducasse@inria.fr> Question: Do you have a way to generate the code for the prototype one you have
created one by direct manipulation?
A prototype is like a specification of certain attributes?
No. Prototype is just basic morph. When guide requested to show presenter it search saved prototype for presenter and execute "prototype veryDeepCopy" to create view instance. So there is no need to support specification objects. It is all basic morphs.
I think that it would be nice to be able to turn a prototype into a class definition. Because as igor said been able to edit code is often a good way to reuse.
Maybe you right. But with current solution you can just open explorer on morph which you want to change and modify it state programmatically as you want. At the end of modifications you just save it as prototype. Also you can easilly get prototype instance and modify it directly. There is "inspect build context" item in halo menu. Also there is menu items for copy prototype from one presenter and paste it to another. But sometimes our clients ask me for xml with skin properties to change x,y of some interface element. I just show him halo menu and they happy.
I add like to screencast. Strange that fullscreen button not work. It is same screencast which I send you and Todor few weeks ago. Unfortunately too little time to create more good docs and screencasts. 2011/8/7 Stéphane Ducasse <stephane.ducasse@inria.fr>
denis
excellent! I want to have a look at it. Do you know how I could see the video in big?
Stef
On Aug 7, 2011, at 8:23 PM, Denis Kudriashov wrote:
Hello.
I am glad to announce Presenty - new user interface framework for Pharo (with MIT license). I publish my current version on http://www.squeaksource.com/Presenty.html and write first articles about Presenty on blog http://smalltalk-presenty.blogspot.com
There are some problems with current implementation. But step-by-step I fix it and improved it. And I have many ideas about Presenty future.
Main goal of Presenty is platform independent programming of user interface:
Pharo can run your application on any OS. Presenty can present your application on any OS.
With Presenty you can easilly write UI applications which can be configured for all "user" platforms: mobile phones, tablets, desktop computers and others. Presenty is based on Morphic and I think morphic can simulate every platform appearance and behavior. And I think simulation is easest then supporting native backends.
I have two commercial applications for my company which based on Presenty. So it is really usable although many common UI stuff absent and some bugs exist. One is touch screen oriented application (for basic computer, not mobile device) and second is basic desktop application (driven by mouse and keyboard). It is different applications for different kind of users but its use same components of tasks and domain objects. So when we implement new logic of user interraction it appears on both applications but user takes it with different look and feel.
There is problem with speed of presenty application. For my case cog performance solve it. So I don't worry about it. But problem relates to #veryDeepCopy method of morphs. It is very very slow. This method is used for view creation from prototype morph object. I have fix with special methods for copy prototype morph. But I don't use it yet.
Now I prepare presentation for ESUG. So I can take into account of all your comments and questions.
Best regards, Denis
Nice. Of course editing stuff with context menu is tedious.. :) With editor this may be much easier. On 7 August 2011 22:06, Denis Kudriashov <dionisiydk@gmail.com> wrote:
I add like to screencast. Strange that fullscreen button not work. It is same screencast which I send you and Todor few weeks ago.
Unfortunately too little time to create more good docs and screencasts.
2011/8/7 Stéphane Ducasse <stephane.ducasse@inria.fr>
denis
excellent! I want to have a look at it. Do you know how I could see the video in big?
Stef
On Aug 7, 2011, at 8:23 PM, Denis Kudriashov wrote:
Hello.
I am glad to announce Presenty - new user interface framework for Pharo (with MIT license). I publish my current version on http://www.squeaksource.com/Presenty.html and write first articles about Presenty on blog http://smalltalk-presenty.blogspot.com
There are some problems with current implementation. But step-by-step I fix it and improved it. And I have many ideas about Presenty future.
Main goal of Presenty is platform independent programming of user interface:
Pharo can run your application on any OS. Presenty can present your application on any OS.
With Presenty you can easilly write UI applications which can be configured for all "user" platforms: mobile phones, tablets, desktop computers and others. Presenty is based on Morphic and I think morphic can simulate every platform appearance and behavior. And I think simulation is easest then supporting native backends.
I have two commercial applications for my company which based on Presenty. So it is really usable although many common UI stuff absent and some bugs exist. One is touch screen oriented application (for basic computer, not mobile device) and second is basic desktop application (driven by mouse and keyboard). It is different applications for different kind of users but its use same components of tasks and domain objects. So when we implement new logic of user interraction it appears on both applications but user takes it with different look and feel.
There is problem with speed of presenty application. For my case cog performance solve it. So I don't worry about it. But problem relates to #veryDeepCopy method of morphs. It is very very slow. This method is used for view creation from prototype morph object. I have fix with special methods for copy prototype morph. But I don't use it yet.
Now I prepare presentation for ESUG. So I can take into account of all your comments and questions.
Best regards, Denis
-- Best regards, Igor Stasenko AKA sig.
2011/8/7 Igor Stasenko <siguctua@gmail.com>
Nice. Of course editing stuff with context menu is tedious.. :) With editor this may be much easier.
Of course. But it is really simplest thing which can be done. Poor designer always exists in morphic. So I can focus on more interesting stuff which I need in practice. I think it is not difficult to use stuff from resent designer projects (from null pointer )
On Aug 7, 2011, at 9:59 PM, Denis Kudriashov wrote:
2011/8/7 Igor Stasenko <siguctua@gmail.com> Nice. Of course editing stuff with context menu is tedious.. :) With editor this may be much easier.
Of course. But it is really simplest thing which can be done. Poor designer always exists in morphic. So I can focus on more interesting stuff which I need in practice.
I think it is not difficult to use stuff from resent designer projects (from null pointer )
I do not think so and having a complete scenario is the way to go if you want people to get involved and using it.
2011/8/8 Stéphane Ducasse <stephane.ducasse@inria.fr>
On Aug 7, 2011, at 9:59 PM, Denis Kudriashov wrote:
2011/8/7 Igor Stasenko <siguctua@gmail.com> Nice. Of course editing stuff with context menu is tedious.. :) With editor this may be much easier.
Of course. But it is really simplest thing which can be done. Poor designer always exists in morphic. So I can focus on more interesting stuff which I need in practice.
I think it is not difficult to use stuff from resent designer projects (from null pointer )
I do not think so and having a complete scenario is the way to go if you want people to get involved and using it.
Complete scenario required time.
On Aug 7, 2011, at 10:56 PM, Denis Kudriashov wrote:
2011/8/8 Stéphane Ducasse <stephane.ducasse@inria.fr>
On Aug 7, 2011, at 9:59 PM, Denis Kudriashov wrote:
2011/8/7 Igor Stasenko <siguctua@gmail.com> Nice. Of course editing stuff with context menu is tedious.. :) With editor this may be much easier.
Of course. But it is really simplest thing which can be done. Poor designer always exists in morphic. So I can focus on more interesting stuff which I need in practice.
I think it is not difficult to use stuff from resent designer projects (from null pointer )
I do not think so and having a complete scenario is the way to go if you want people to get involved and using it.
Complete scenario required time.
yes I know :) but heading in the right direction is important. I'm quite sure that you could take a prototype and generate a class from it.
participants (3)
-
Denis Kudriashov -
Igor Stasenko -
Stéphane Ducasse