Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Dynamic Windows 3.2 Status Update
#1
Figured I'd take a moment to post an update on the progress being made for Dynamic Windows 3.2.

3.2 is mainly going to be a platform support update... adding support for the following platforms: GTK4, Wayland (GTK3), iOS and Android.

GTK4 is mainly ready to go, the only missing piece is HTML support since webkit2gtk does not yet support GTK4. Several other features are unavailable due to their removal in GTK4, like the already deprecated MDI and taskbar support. (Wayland also has more limitations like no window positioning support) Here is a GTK4 screenshot running in Fedora Linux using Wayland instead of X11:

[Image: VirtualBox_Fedora_24_04_2021_14_12_23.png]

iOS is also very close to ready with a few caveats.  The container widget only displays the first column currently, since the UITableView only has one column on iOS.  I am debating having an optional custom UITableViewCell with the data from all the columns displayed. There is no tree control in iOS so this widget is completely unavailable. 

I am stuck on two bugs that have me completely confounded, first the calendar widget is implemented, but when I enable the code... all DWBox (UIView subclasses) in my view hierarchy get a size of 0x0.

Second context menus are implemented, but whenever one tries to display I get the following error on the debug console:

[Assert] Failed to find a presenting view controller for view (<DWContainer: 0x7fa413046200; baseClass = UITableView; frame = (6 696; 1344 200); clipsToBounds = YES; tag = 100; gestureRecognizers = <NSArray: 0x60000012c630>; layer = <CALayer: 0x600000ff55e0>; contentOffset: {0, 0}; contentSize: {1344, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <DWContainer: 0x7fa413046200; baseClass = UITableView; frame = (6 696; 1344 200); clipsToBounds = YES; tag = 100; gestureRecognizers = <NSArray: 0x60000012c630>; layer = <CALayer: 0x600000ff55e0>; contentOffset: {0, 0}; contentSize: {1344, 176}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <DWContainer: 0x7fa413046200>>>) in window (<DWWindow: 0x7fa412604db0; baseClass = UIWindow; frame = (0 0; 1366 1024); gestureRecognizers = <NSArray: 0x6000001fde30>; layer = <UIWindowLayer: 0x600000f80e80>>). The interaction's view (or an ancestor) must have an associated view controller for presentation to work.

There is a presentation view controller on the DWWindow (UIWindow subclass) that is the toplevel ancestor, so not sure why it thinks there isn't one. 

Here is a screenshot running on an iOS 14 iPad in dark mode:

[Image: Screen_Shot_-_iPad_Pro_-_2021-04-24_at_14.05.46.png]

Finally Android has the furthest to go, I have the basics working right now: Buttons, Check/Radiobuttons, Entryfield, MLE, Comboboxes, Listboxes, Notebook, and HTML are functional.

Still left to go: Container and Font.

Boxes are implemented with LinearLayout which has a weight option for expanding like my system, but it isn't divided up into horizontal and vertical.

Here is a screenshot of Android with its (slightly) incorrect layout:

[Image: device-2021-05-14-204122.png]

Update: May 11, got much more working... almost everything except containers and fonts... and presumably a lot of bugs.

I had been using Xamarin and C# for doing mobile development, but hopefully in the next few months I can completely move over to using my own library for cross platform development on Mobile as well as desktop! 

Brian
Reply
#2
Things getting much more stabilized now... on iOS basically just menus left to go... still getting the error: "The interaction's view (or an ancestor) must have an associated view controller for presentation to work."  If any one has any information on this... I'd really love to hear from you, so far there is a post on stack overflow about the issue with no responses, and I posted on Apple Developer Forums about it as well... no solutions so far.

Android has all the basics in place... a few things still missing: Multiple window (activity) support, Color picker, Font picker, Keyboard support. Plus the file picker needs some serious work... I just wrote a basic picker since there seems to be no built-in dialog.

Here are a couple more screenshots as things progress....

iOS 14 Dark Mode:
[Image: Screen_Shot_2021-05-25_at_1.22.00_PM.png]

Android 9:
[Image: device-2021-05-24-202349.png]

Love making progress!
Brian
Reply
#3
The menu bug is now fixed on iOS, meaning only basically polish left to go on that platform.  I posted my solution to the problem on Stack Overflow and the Apple Developer forums which were linked in the previous post.  Android still has some work left, but is able to run most of the test program.

[Image: iOS-SS.png]

Will work on the Android version a bit more later, after a detour to work on White Star and Waterfox issues I've been messing with on and off.

Stay tuned!

Brian
Reply
#4
Moved into building Dynamic Windows applications on iOS and Android.  Had previously just been testing with the dwtest that is bundled with the library to show off the features and test things.  

Currently building: Control Center and HandyFTP.
Not yet attempted: Dynamic Windows Interface Builder and Dynamic Mail.
Both of these require the tree widget which is currently not supported on iOS or Android.

Here are some screenshots of Control Center on iOS and Android...

iOS currently doesn't support getting network statistics so those all show 0:
[Image: Screen_Shot_2021-08-13_at_5.27.29_PM.png]

Android while the Linux code to get the system load runs it doesn't seem to be reporting any load on my Amazon Fire tablet:
[Image: device-2021-08-16-025123.png]

Update: Apparently from Android 8 and higher access to /proc/stat is restricted to system applications. https://issuetracker.google.com/issues/37140047?pli=1
My tablet is running Android 9 so it can't access any system statistics, I tried switching to /proc/self/stat if /proc/stat is inaccessible, however this does not give any idle stats, so instead of showing 0% all the time it now shows 100% all the time. Sad Also /proc/net seems to be restricted in Android 10 or later https://developer.android.com/about/vers...cy/changes ... so the network statistics may be unavailable running on versions later than Android 9... why Google? Why? Why can't we have nice things!?!

Update 2: Was able to get the filesystem information working sharing the Linux code. Smile

Will post some HandyFTP screenshots soon, I have not gotten the resources setup in the XCode and Android Studio projects yet... but should have something nice to show in a day or two!

Brian
Reply
#5
Completely unrelated, but I find it interesting... now that I have a G5 64-bit PowerPC processor my apps are able to run 64bit graphical mode... OS X 10.5 is the only version that allows it... 10.4 could run 64bit apps but not graphical... and 10.6 dropped PowerPC support completely.

[Image: Mac_PowerPC_64.png]
Reply
#6
Got a bit busy so didn't get to work on the HandyFTP app as much as I wanted, but here are the first screenshots of HandyFTP running on iOS...

[Image: iPad_Pro_2021-08-31_at_04.37.20.png]
[Image: iPad_Pro_2021-08-31_at_04.39.51.png]
[Image: Screen_Shot_2021-08-31_at_4.40.58_PM.png]

Still needs some work to clean up the visuals, but it is functional!  Android screenshots coming soon. Smile

Brian
Reply
#7
As promised the first screenshot of HandyFTP on Android.  Semi-functional but not as good as iOS yet. More to come!

[Image: device-2021-09-19-180535.png]

Current issues:
The single window limitation hampers functionality. Secondary dialogs such as Preferences cannot be accessed.
Site type files cannot be loaded because the assets are stored inside the APK archive, and thus the filesystem functions fail.
* Remote sites can't be parsed because the site types are required to understand how to parse the output.
Getting a crash in the container code when queuing a file.  Will check this out soon.

Update: After a number of weeks of work, I've implemented multi-window support in a similar manner as I had previously on iOS.
I'm going to work on some of the cosmetic issues for a few days and then post some more screenshots on both iOS and Android.
Reply
#8
Struggling a little with the Android visual fixes... mainly because Android Studio's Layout Inspector has suddenly stopped working... so I am not entirely sure what is wrong with the layout.... but in the meantime... here are new iOS screenshots with some of the layout fixes... showing it connected to a live server... and only putting the Back button on windows with the DW_FCF_CLOSEBUTTON style.

[Image: Screen_Shot_2021-10-19_at_3.40.02_PM.png]
[Image: Screen_Shot_2021-10-19_at_3.40.30_PM.png]
[Image: Screen_Shot_2021-10-19_at_3.42.12_PM.png]

I'll post updated Android ones as soon as I can... if anyone has any tips for getting the Android Studio Layout Inspector working again... please let me know!

Brian
Reply
#9
Here are screenshots of the About and System Information windows... on Android. The word wrap isn't functioning correctly on the About page... I'll update the screenshot when I fix it.

[Image: device-2021-10-21-171539.png]
[Image: device-2021-10-21-171547.png]
Reply
#10
Updated to Xcode 13 and iOS 15... some screenshots in light mode and one with an active file transfer.
[Image: Screen_Shot_2021-10-22_at_3.32.08_PM.png]
[Image: Screen_Shot_2021-10-22_at_3.32.34_PM.png]
[Image: Screen_Shot_2021-10-22_at_3.38.14_PM.png]
Reply


Forum Jump:


Users browsing this thread: 8 Guest(s)