True Native Crossplatform Delphi Library (spoiler)


True Native Crossplatform Delphi Library (spoiler)

Hello gentlemen,

I'm glad to announce 3 news in Delphi world: 2 positive and one negative.

I had been working on development FireMonkey library for 5 years in Embarcadero. It was a usefull time for deep understanding how library should work. And after closing offices i have been started to work on creating new crossplatform really native library from scratch. It never uses firemonkey anymore. Library something similar to VCL, but uses modern approach in development. It uses only small part of rtl. Framework uses native components and native graphics of each os. There are few advantages, which will be available in final version:
1. Look and Feel. All components are native. It means they are using native implementation system components aka VCL. Now you don't need to worry, that your application works on android not so like a application, which was created in XCode or Android Studio.
2. UI response. All components of new library workds so fast, as a system application.
3. Good quality of drawing. Only native OS graphics, which provide a lot of possibility for drawing (gradient, text, primitive, effects) and guarantees that you drawing will be the same on different devices.
4. Design taking into account the specifics of mobile platforms. Mobile platforms differs from desktop platforms and provides new controls, which are special only for mobile design. It's a fact. Framework includes it (Status bars, mobile services, no desktop features and so on).
5. Supporting non visual components DB access components, REST and etc. which allow to create your buisness application
6. Simplification of Stylization. As you know styles in Fmx is a greate features with alot of possibilities. You can put TEdit into style of TPanel (but why?). For each of this posibility framework pays by performance and flexibility for creating you style. You cannot understand which controls you should use for create for ex style for TEdit. But in common you need just change only graphics (like a skins). Libary will support also styling, but it will not provide put any controls to each other for reducing complexity of style using and increasing performance.
7. Extensibility. In this time libraries have already have base for creating components. which are using os native controls or components, which are self drew themself.
8. Modularity. Framwork designed to reflect a decrease in the connectivity of the components and modules between them. You can be sure, that if you are create empty one form application it will not load web browsers, buttons and other controls like a FMX. It one of the way for reducing application size. On this moment application which is created by my framework takes in 3 time less memory space, then the same fmx application.

I will provide more information about details in development process. There is still a lot of work, but not a small part of the work is already done and left behind.

There are just a screenshot from my demo application of really native application with my library. It doesn't use any FMX.

P.S. The topic is very interesting, and will likely cause a lot of questions. I will try to answer whenever possible.
P.S.P.S. Soon there will be a resource where you can learn more about the project, and meet with a Road map and to learn about the progress of project development.

Its' a good news. Bad will be in a next post (It relates with Delphi - Android bridge)

Comments

  1. Ronald Klitsche Hi, Only for mobile platforms iOS and Android. The main reason for it is that mobile and desktop platforms are very different from development of UI. From one side you can create one fmx application and run it on desktop and ios, but we understand that mobile application will look like a "desktop" application and will not give good impression for your clients. But i'm planning to create desktop version of this platform, so now i put the base for it in this platform.

    ReplyDelete
  2. I would like to ask with the native components we will not see fmx problems when writing RTL languages with TEdit?

    ReplyDelete
  3. Supporting desktop could be nice when developing. Compile time is crazy fast for win32. I'm fine if I get a mobile UX on desktop

    ReplyDelete
  4. Will it have a WYSIWYG designer, or the UI would have to bewritten by hand? Thanks.

    ReplyDelete
  5. why this was not made during ur Emb. time? if this is right approach? confused :(

    ReplyDelete
  6. Brett Wilton Now i'm working on developmenet of IDE designer, after finish i will record video of demo.

    ReplyDelete
  7. Edwin Yip no, First release will contains all standard system controls and special controls like a ListView. OS doesn't have system WYSIWYG controls. But ios has rich formatting of text (Attributed string), so maybe i will provide special functionality for do it.

    ReplyDelete
  8. Lars Fosdal Current library only for mobile platform. If it is good, i will provide second version with supporting desktops.

    ReplyDelete
  9. Aleksandar Djurovic There are no right way. Each way in IT has several advatanges and disadvantages. I'm glad, that i have participated in development of firemonkey, it's a greate experience with really very experienced team. But now i want to implement my ideas.

    ReplyDelete
  10. Edwin Yip If you are about IDE designer, then yes, this library will have special form designer.

    ReplyDelete
  11. Have you also worked out the database connectivity to controls already? Is it LiveBindings-like or something else?

    ReplyDelete
  12. Did you consider adding FPC/Lazarus support? The FPC compiler for Android and iOS are very good, and it may be easier to get some new users, not coming from a Delphi background. If you license your library with FPC/Lazarus with a dual licence (OpenSource for OpenSource project, paid for commercial projects), thanks to the cross-compiling features of FPC, it may become a killer project. True RAD for iOS and Android, native UI components, with a native compiler and modern object pascal on both platforms... it is something unique...

    ReplyDelete
  13. Yaroslav Brovin Yes, design-time designer is what I meant.

    ReplyDelete
  14. Girish Patil not yet, But i would like to add supporting old classic approach with DB aware components. It's faster and more habitually

    ReplyDelete
  15. A. Bouchez It's interesting idea, but currently i'm interesting in extension for Rad Studio. If it's good, i will port it to FPC also.

    ReplyDelete
  16. Edwin Yip I'm working on it now. IDE has a big Tools API, but not sometimes there are no possibility to make full integration. it doesn't have required IDE for good integration and creating custom form designer. So i'm searching good approach for do it.

    ReplyDelete
  17. Looks nice, I have developed some mobile apps with firemonkey and it was a quite disappointment.

    ReplyDelete
  18. Hello,
    I spent one month for creating well embedded form designer into IDE. It hasn't completed yet. But current version able to:
    1. Create new Delphi project type application, which uses only my new library
    2. Create new delphi form designer, which doesn't use VCL or FMX designers (Like Intraweb or Unigui). It's really new designer.
    3. Form designer allows drop new libraries controls to form, drag position and size. Also new designer has several minor features like showing size for draggable controls.
    I'm going to present first video presentation in 2 weeks. Presentation will include full process from creating project in IDE, putting controls and launching on android device. Work will not comple in this 2 weeks. Just first milestone, which includes draft of all phases development of application.

    Will provide more info in this 2 weeks.
    https://plus.google.com/photos/...

    ReplyDelete
  19. Looks very nice and interesting, looking forward to see release version.

    ReplyDelete
  20. I really excited to see your continued progress.

    ReplyDelete
  21. Esteban Granados I hope yes, For this library only compilers are important part. Will provide more information about it later (after beta testing)

    ReplyDelete

Post a Comment