Yesterday I tried RadPHP, it looks very similar to Delphi with it's properties which is very nice.
I set-up some demo app to test it and after compiling (to android) it seems to be a compiled app that creates an webview to show HTML content. Sounds a littlebit weird to me or isn't it?
Does RadPHP creates a similair package for iOS or is this a real native app?
I cannot test it for a iOS version, because i don't have a key and i don't know anything about the compiled format.
If it does, will apple accept the created app?
EDIT/UPDATE: I have compiled the app (with fake apple-id) which fails ofcourse but generates some C-Objective (.h,.m) files in the output directory. In the directory classes there is a file named AppDelegate.m. When you view the file you can see that it creates a HTML wrapper to a WebView (here is a snippet from the code):
/**
Called when the webview finishes loading. This stops the activity view and closes the imageview
*/
- (void)webViewDidFinishLoad:(UIWebView *)theWebView
{
// only valid if StreambutlerRemoteControl.plist specifies a protocol to handle
if(self.invokeString)
{
// this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready
NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString];
[theWebView stringByEvaluatingJavaScriptFromString:jsString];
}
return [ super webViewDidFinishLoad:theWebView ];
}
- (void)webViewDidStartLoad:(UIWebView *)theWebView
{
return [ super webViewDidStartLoad:theWebView ];
}
/**
* Fail Loading With Error
* Error - If the webpage failed to load display an error with the reason.
*/
- (void)webView:(UIWebView *)theWebView didFailLoadWithError:(NSError *)error
{
return [ super webView:theWebView didFailLoadWithError:error ];
}
/**
* Start Loading Request
* This is where most of the magic happens... We take the request(s) and process the response.
* From here we can re direct links and other protocalls to different internal methods.
*/
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]) {
return YES;
}
else {
return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ];
}
}
CONCLUSION: It will be a native app but is a wrapper to Webview (not all is native). It does exactly the same like said in the accepted answer. All mobile apps will be created using a Webview. I think RadPHP is only useful when you like the programming interface but is not necessary to create mobile apps (you can use phonegap directly instead). In the examples of RadPHP you still need a mac to create the app (you need XCode).
Apple accepts phonegap generated applications but it still not sure if it made it to the AppStore, it depends on what you doing with it. I think simple apps will made it. See also: http://www.phonegap.com/faq
NOTICE on HTML produced by RadPHP It is not W3C.
RadPHP uses PhoneGap to package up your app as an Android, iOS or Blackberry app. It generally works the same way for all three of those mobile platforms.