Depending on your requirements there are three built in roles you could use.
Application Developer: Users can create and manage their "own" app registrations and service principals. When creating an app the user is automatically added as "owner" and can manage the app.
Application Administrator: Users can create and manage ALL apps, service principals and application proxies.
Cloud Application Administrator: Users can create and manage ALL apps and service principals (but the can NOT create or manage application proxies).