I'm very new to this myself, making a part migration from the Arduino IDE to Atmel Studio so I can use an interactive debugger, data visualiser etc., so I am joining this thread to see what comes out of it.
With atmega328p arduino applications, I believe you have the option of importing an Arduino application directly.
With the board I am using, an atmega4809 (megaAVR-0 series) eXplained, as i discovered, you can't.
Then you have to decide if you use the ATMEL START development tool or directly use raw gcc C++.
I've just about got to the stage of roughing out bare metal equivalents of Serial.print, port access (digitalWrite() etc. ) and a millis() equivalent.
I feel I'm pioneering a bit because I am finding bugs in the official "getting started" examples for my board which indicates that nobody has really used them, such as forgetting to activate the pullup resistor on a read button example, or not noticing that the built in led is wired on the high side so everything is inverted.
What the exercise does make you realise, though, is how much you take for granted with the Arduino IDE, especially a high degree of source code portability across platforms, functions for the commonly used activities, and libraries for a huge number of peripherals. However, you then also hit the limitations of not having professional development tools like an integrated debugger.