Cheaper Windows 8.1 tablets coming ! How to develop for minimal hardware.

Yes, cheaper (lower cost) Windows 8.1 tablets are coming. Just read about Archos coming out with a 8 inch, Windows 8.1 (not WINRT) tablet for only about $150. I had suggested in the past that Windows tablets could eventually reach the $99 price range and things are obviously going in the right direction. The free version of Windows 8.1 Microsoft is offering obviously will make a big difference. This version is only for smaller than 8 inch devices under $200. But it is real Windows.

Designing software for minimal hardware

Obviously these low cost tablets will have minimal hardware. Likely the SDD (solid state drive) or whatever they use for a disk drive, will be small, like 32 gigabytes or less. Memory likely with be 2 gigabytes or less (possibly 1 gigabyte). They will likely be based on the Intel Atom SOC’s (system on a chip). So how does one write desktop software for such hardware ?

EZGUI 5.0 Professional offers developers a way to build powerful desktop applications which only require minimal hardware. Combined with the PowerBasic compiler, it allows one to build complex user interfaces using a tiny Graphic User Interface framework.  I am looking into porting the framework for use with other compilers, but for now it only works with PowerBasic.

When I say “tiny”, I mean tiny ! While modern dot.net frameworks are in the many megabytes in size and require more and more horsepower (CPU power), the EZGUI 5.0 Professional framework is tiny in comparison and can work on PC’s with 1/3 of the power of a typical mass market PC (can you say Walmart?). So what does the EZGUI framework support and how big is it ?

Compared even to the old classic Visual Basic (5.0) runtimes, EZGUI is still tiny.

Consider Visual Basic 5.0 Professional’s runtimes:

msvbvm50.dll – 1324 KB
comdlg32.ocx – 150 KB
comctl32.ocx – 595 KB
comct232.ocx – 161 KB
mscomct2.ocx – 633 KB
richtx32.ocx – 208 KB

Totol – 3071 KB

Let’s list a feature set of the EZGUI 5.0 Profssional framework and you tell me how large a runtime would be required.

  • Forms (including MDI)
  • All standard controls
  • Most common controls (Animation, Calendar,DateTime,Listview,Pager,Progressbar,Rebar,StatusBar,ToolTips,Tab control, Toolbar,Trackbar,UpDown)
  • RichEdit (supports versions 1.0 to 4.0)
  • Print engine (print to printers)
  • Common Dialogs (open/save, colors, fonts,print, page setup, find/replace)
  • Tray Icons
  • Form Menus and Popup menus
  • Clipboard (text,RTF text,bitmaps)
  • Registry
  • Control Search Functions
  • Timers
  • Display HLP and HTML Help files
  • MessageBoxes

So far a decent number of features, so if we can stay below Visual Basics 3 meg runtime (core runtime and typical OCX’s necessary) size we are doing good, right ?

Well let’s add some more advanced features such as:

  • Shape/Hotspot/SplitterBar custom control
  • Turtle Graphics (vector based images) custom control
  • Files Listbox custom control
  • Properties Listbox custom control (yes a real property list control)
  • MCI custom control with simple scripting language

Not bad, but let’s add some more features to our GUI framework (definitely going to be a bigger runtime than Visual basic, right ?)

  • Thread engine for non-GUI worker threads
  • Subclassing engine for low level access to controls window procedures
  • Superclassing engine to make building new controls from existing classes easier
  • Support for multi-monitors

We need Graphics, so what about that ?

  • Canvas custom control with low level drawing engine and low level DIB (device indepent bitmap) engine for accessing pixels directly
  • 2D Sprite engine for Canvas with frame animation, alphablending, antialiasing
  • 22 Image filters for drawing bitmaps
  • OpenGL based glCanvas custom control with 3D scripting language
  • STL 3D model support for drawing high polygon count models

If we have graphics, how about customizing controls ?

  • OwnerDraw engine with graphic commands for customizing Menus, Tab control, Listbox, Combobox,Button, Label and Listview controls
  • Customdraw for customing fonts and colors per item/cell for Listview and treeview controls
  • support for drawing some Theme aspects for ownerdraw
  • direct access to window DC’s for drawing or reading

Some more features thrown in like:

  • copy contents of forms and controls to a bitmap
  • complex window region generation for forms and some controls (non-rectangular windows)

And lastly, since RAD is so important wouldn’t a GUI framework need some way to make building a visual designer (like Visual Basic) easy ?

  • Visual Designer drag and drop engine with drag handle custom control
  • Snap To Grid
  • Rubberbanding engine (for drawing controls)
  • subclassing engine to make controls capable of drag and drop visual design

Ok, how big a runtime do you think we will need ? If classic Visual Basic was about 3 megabytes, then likely all of the above would require at least twice as much, right ?

Wrong. The entire runtime for the GUI framework is only about 1 megabyte in size and I haven’t even mentioned all the features in it (it has a command set which is close to 1000 commands).

So with the coming low cost Windows 8.1 tablets, developers can also build powerful software which will run very well on them too.