Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Questions about Corona...
Started by jdsmedeirosbr Jan 25 2020 07:19 AM

7 replies to this topic
[TOPIC CONTROLS]
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

jdsmedeirosbr

[GLOBAL: userInfoPane.html]
jdsmedeirosbr
  • Enthusiast

  • 94 posts
  • Corona SDK

Hello, could someone answer me this question?

1 - How does Lua generate the builds? native code? a bridge like React Native?

2 - Is there any way to create apps for Windows in 64 bits?

3 - The generated splash screen, is it only for mobile?

4 - To install more than one app on my iPhone I have to create a standard app in xcode just to generate a different bundle id to select when generating the build for the device, is there another easier way to do this?

5 - I can call any function of iOS or Android learning how to call native code with Lua? or have any restrictions?

[TOPIC: post.html]
#2

XeduR @Spyric

[GLOBAL: userInfoPane.html]
XeduR @Spyric
  • Corona Geek

  • 1,176 posts
  • Corona SDK

1 - Copied from https://coronalabs.com/faq/

 

"Why does Corona require an Internet connection to build?
 

Corona requires an Internet connection to build apps for devices because part of the build process occurs on Corona Labs’ servers. However, Corona Labs never sees your raw source code, project images, sounds, or other assets. When you initiate an online build, the Lua script is pre-compiled into bytecode (stripping out comments, debug information, etc.) before it gets sent to the server. The server embeds this data into the Corona engine but it never saves or archives it. Once the build process is complete, you will have an app bundle or executable just as if you had used the native platform SDK."
 

2 - Corona has only win32 builds for now, but 64bit Windows can run them without any problems.

 

3 - I believe that the splash screen is for all platforms. Removing it costs 99$/year.

 

5 - https://docs.coronalabs.com/native/index.html


  • pixec likes this

[TOPIC: post.html]
#3

jdsmedeirosbr

[GLOBAL: userInfoPane.html]
jdsmedeirosbr
  • Enthusiast

  • 94 posts
  • Corona SDK

The first answer was not entirely clear to me... So the Corona servers turn the lua script into machine code so that it works on all platforms? So this means that the performance is the same as a native that also generate machine code?

[TOPIC: post.html]
#4

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Corona Geek

  • 1,377 posts
  • Corona SDK

Corona has native wrapper engine for each platform. I don't know what "machine code" means to you but most developers tool chains do not compile to machine code. Your LUA files are compiled into LUA byte code and then the corona engine runs the lua bytecode. 

 

This is a similar process that Unity uses. Last time I checked the C# code you write in Unity gets compiled to clr bytecode. Every Unity native platform template has a copy of a mono clr engine that can run the clr bytecode in the native machine.

 

Now if you are only using lua code for everything (not likely) then all your code will run through this bytecode engine. It is more likely that you will show something on the screen and/or play some sound. In that case some of those calls will call whatever underlying library for that particular OS

 

So it it as fast as native code probably not. It it is as fast as "machine code" probably not.

 

Corona is open source and also has a mechanism to create native plugins. So if you have a fixed hardware you can technically use either of those 2 mechanisms to talk to the hardware directly (machine code). 


  • roaminggamer likes this

[TOPIC: post.html]
#5

roaminggamer

[GLOBAL: userInfoPane.html]
roaminggamer
  • Corona Geek

  • 7,641 posts
  • Corona SDK

4 - To install more than one app on my iPhone I have to create a standard app in xcode just to generate a different bundle id to select when generating the build for the device, is there another easier way to do this?

 

 

I used to like to do experiments and also did not want to make new bundle IDs for an idea that might not go anywhere.  So, I made a single bundle ID that I could use over and over for installs on my device only.  Of course, this meant only one experiment on my device at a time, but it worked.

 

Note: The iOS dev environment (due to Apple) has change a lot since I started in 2011 and this practice is from the early days.  There may well be better options now, but I don't know of one.  

 

Hopefully someone else here has a cleaner option.


  • pixec likes this

[TOPIC: post.html]
#6

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,622 posts
  • Enterprise

Hello, could someone answer me this question?

1 - How does Lua generate the builds? native code? a bridge like React Native?

2 - Is there any way to create apps for Windows in 64 bits?

3 - The generated splash screen, is it only for mobile?

4 - To install more than one app on my iPhone I have to create a standard app in xcode just to generate a different bundle id to select when generating the build for the device, is there another easier way to do this?

5 - I can call any function of iOS or Android learning how to call native code with Lua? or have any restrictions?

 

1. Currently iOS builds send your compiled Lua bytecode to the servers for packaging. While it may be weird, I've been using Corona since 2011 and I've never really asked for the details on what goes on behind the scene. We recently made most of the Android build process local to Android Studio. Windows, macOS, and HTML5 . builds are done locally. Checks with the server for licenses still happens across all platforms. 

 

Building with Corona Native for iOS pulls most of the build process on par with the other platforms,

 

2. No, Currently Corona Windows builds are win32.exe's only. We do not have plans to make it 64 bit,

 

3. I believe the splash screen is only enforced on iOS, tvOS and Android. We provide a Corona splash screen for HTML, but it's pretty easy to change and it doesn't check to see if you have the Splash Screen plugin.

 

4. To use multiple apps on your device, you will need to create multiple Applications in the Apple developer portal. Each application will need either a development provisioning profile or ad-hoc provisioning profile. These can be downloaded from the website and copying to ~/Library/MobileDevice/Provisioning Profiles/ Restart the simulator afterwards and if your certificates and profiles were done correctly you can build with the simulator and install to your device.

 

In my case, I have created three apps (test1, test2, test3) and have profiles for each of them which lets me have three apps installed at a time that I don't need to have a dedicated profile for for trying things. You don't need Xcode for this. Xcode will download your profiles and put them in the right folder for you, but they end up with non-human readable file names.

 

5. I'm certain there are some restrictions, but in most common use cases, you should be able to get things to work. Now that said, keep in mind, Corona is not designed to build background apps. There is an assumption that any Corona display objects will be rendered to an on-screen OpenGL canvas.  If you do something in native while Corona is in the background that causes the screen to update isn't guaranteed to work.

 

Rob



[TOPIC: post.html]
#7

jdsmedeirosbr

[GLOBAL: userInfoPane.html]
jdsmedeirosbr
  • Enthusiast

  • 94 posts
  • Corona SDK

1. Currently iOS builds send your compiled Lua bytecode to the servers for packaging. While it may be weird, I've been using Corona since 2011 and I've never really asked for the details on what goes on behind the scene. We recently made most of the Android build process local to Android Studio. Windows, macOS, and HTML5 . builds are done locally. Checks with the server for licenses still happens across all platforms. 
 
Building with Corona Native for iOS pulls most of the build process on par with the other platforms,
 
2. No, Currently Corona Windows builds are win32.exe's only. We do not have plans to make it 64 bit,
 
3. I believe the splash screen is only enforced on iOS, tvOS and Android. We provide a Corona splash screen for HTML, but it's pretty easy to change and it doesn't check to see if you have the Splash Screen plugin.
 
4. To use multiple apps on your device, you will need to create multiple Applications in the Apple developer portal. Each application will need either a development provisioning profile or ad-hoc provisioning profile. These can be downloaded from the website and copying to ~/Library/MobileDevice/Provisioning Profiles/ Restart the simulator afterwards and if your certificates and profiles were done correctly you can build with the simulator and install to your device.
 
In my case, I have created three apps (test1, test2, test3) and have profiles for each of them which lets me have three apps installed at a time that I don't need to have a dedicated profile for for trying things. You don't need Xcode for this. Xcode will download your profiles and put them in the right folder for you, but they end up with non-human readable file names.
 
5. I'm certain there are some restrictions, but in most common use cases, you should be able to get things to work. Now that said, keep in mind, Corona is not designed to build background apps. There is an assumption that any Corona display objects will be rendered to an on-screen OpenGL canvas.  If you do something in native while Corona is in the background that causes the screen to update isn't guaranteed to work.
 
Rob


I understood your answer in question 4, but what about when I don't have a paid iOS development account? in the free account there is no way to create provisionings on the portal, so the only way is to create standard projects in xcode to generate these files?

[TOPIC: post.html]
#8

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,622 posts
  • Enterprise

Unfortunately I have a paid developer account so I can't try it as an unpaid developer. I believe there is an Xode Wildcard profile that comes pre-installed with Xcode. You should be able to do that, but it may limit you to one app at a time.

 

Rob

 




[topic_controls]
[/topic_controls]