I am rewriting an application that I designed a few years ago.
It is written 100% in Xojo and is for macOS only.
RAPID - Rapid Application Prototype for iOS Devices
It is an application to allow a developer to create near pixel perfect mockups of iPhone/iPad applications using most of the controls from the Apple UIKit. It supports portrait and/or landscape images for all current iPhone/iPad devices (including iPhoneX).
This application when completed will be available it two LEVELS
- create near pixel perfect mockups (print/export to PNG) [Level One is almost "feature complete]
- emit an operational Swift/Xcode project [Level Two coding has not yet begun]
Note : this is NOT designed to compete with “Xojo for iOS” in that it is NOT a programming language in and of itself… Any “business” logic would need to be added to the code emitted in Level 2 (the Swift code will only be the actual views with stubs for the events)
The state of the project at this moment is that Level One is near completion… This includes everything necessary to create a multi-view project, layout the controls for each device/orientation, and modify (move, edit, delete etc) as required.
Each of the controls from UIKit expose all the attributes necessary to totally customize the UX as desired.
What I need it two or three people who have an interest in this type of project to help me beat it up and find bugs, make suggestions for changes etc.
Once Level One is completed, I will begin Level Two (Xcode). I do know that Level Two is obtainable as I already have a working version from the first attempt I made a few years ago…
Note : RAPID will NOT use Autolayout for Level Two. Personally I find AL to be too constraining (pun), not to mention the overhead required. But it does use a method that allows much more flexiblity (different layouts per each device if necessary)
I don’t play around with iOS at the moment so I can’t help.
For level one, just ensure your controls are accurate https://developer.apple.com/design/resources/ that’s the first thing I picked up on looking at the screenshot.
All the best with the project.
And in what way are you inferring they are NOT accurate? I have compared each of these to what a real device shows, and all are a close as possible… The biggest deviation is with Pickers due to the curved display
You’re using #5895FE for your blue colour when it should be #007AFF
Here’s some examples of actual controls, but I don’t know if me telling you this is worthwhile as you got to this stage being happy with the differences but people always think their children are the prettiest
I am missing your point… I don’t know where you get #5895fe from…
Public Const color_iOS_Blue as Color = &c007aff
perhaps your monitor suffers from a different color space.
when I use a color meter I get 0091FF even though Xojo drew it whti 007aFF but it certainly isnt 5895fe
which is exactly what I get when I measure a “Xojo for iOS” project on the same screen
And the point is “MOCKUP”… with the Xojo graphics routines it is nearly impossible to be pixel perfect…
Sure I didn’t put a shadow on the Thumbnail… But I will say it again… I put the output from my app side by side with the exact same controls on the simulator, and it was difficult to tell them apart… but that is not the point… again… it is for mockups leading to the creation of real output (which is controlled directly by iOS)
And for the record… I had this argument with Tim Parnell earlier today… where he insisted that I should spend $$$ to get Adobe Photoshop and insert the images from those links you provided. That simply will not work, and I’m at a loss as to how to explain it… but here I will try once more.
The images in Adobe are STATIC… RAPID allows each control to be drawn however the developer sees fit. This includes the size (with a few exceptions like UISwitch and Stepper), all the colors used to draw them… contrary to what “Xojo for iOS” allows, iOS itself allows you to create a cartoon/clown colored UX if you want… This is why RAPID draws the controls itself… but again, when it generates SWIFT code, it will use the actual native iOS controls and there will be no “drawing” in the created code.
and never did I say the Mockup was pixel perfect… but it IS nearly so
That all being said… each control is being reviewed… and I did change the corner radius to more closely match iOS, and adjusted the padding in the TextView control…
But if this type of app holds no interest, then …
Just asking, no offence meant! But what’s different with Xcode? Xcode (Storyboard) can do prototyping too regarding GUI controls (read: creating a pseudo working GUI without code).
If you need to prototype (and for production) GUI animations, you definitely need Kiteapp (https://kiteapp.co). I use this a lot for creating iOS apps.
A lot is different…
- Interface builder is (my opinion) a royal PITA to use as it relies on Autolayout
- Interface Builder does not easily allow you to create different layouts per device as it relies on Autolayout
- Interface Builder creates Storyboards (RAPID creates everything in code, which is what I prefer, as it is so much easier to modify)
Note: I’m NOT a fan of the complexity of Autolayout if you hadn’t guessed. And before anyone goes ballistic… Apple freely supports the use of Autolayout, OR not… And I’m a fan of a 100% based code project when it is possible to do so…
Using RAPID (the original version) I can go from a blank screen to an Xcode project in a few minutes, IB would take hours, and there is no worries about the Autolayout getting confused (an issue I have seen many topics on this forum)
from the sparse description of KiteApp, it looks like it is similar to what Rapid can/will do
The auto layout in Xcode is very easy to work with. (sadly not so with Xojo).
If you can get the features, like the awesome animations handling in Kiteapp to make it create native code for Xojo would be interesting (but very very difficult to do). I am sure that would be a very useful tool.
In my opinion, auto-layout in Xojo is a simple subset of the Xcode Interface Builder auto-layout and I find it easy to work with provided that I use the inspector to set the values and don’t rely on visually moving controls around a view as the IDE makes some (at times) silly assumptions about what I am trying to achieve. It looks like a lack of dog-fooding to me, as much as anything else.
Kiteapp looks great and good luck with your project Dave!
XCode has a major difference with Xojo iOS : it does not auto layout controls in the IDE. Just at runtime. So when you set the place of a control with the mouse, that control does not move with a life of it’s own in the IDE, forcing the systematic use of a rather cumbersome constraints editor. Which itself has a life of its own and destroys what you painfully set up at the slightest move.
Xojo iOS IDE layout editor is a mess.