Move the IPC Communication initialization block before the condition checking the development environment. This change ensures that IPCs are initialized before the main window starts loading its content, which may be crucial for ensuring that all IPC handlers are set up properly regardless of the environment.
Add `await` keyword to `createMainWindow` calls within app's 'ready' and 'activate' events to ensure the mainWindow is fully initialized before proceeding. This fix addresses potential race conditions where mainWindow could be used before being properly set up.