If you have the passion, knowledge/skill/experience, the money and time then you can do it by yourself. Otherwise hire someone do part of the job for you.
I guess for a software house, the team consists of system architecture, graphic designer, programmer and so on...
If we follow Software Development Life Cycle or System Analyst and Design, before development starts, we need to come out with the wireframe and prototype.
Some app developers use Figma or Adobe Illustrator to design the layout.
When it comes to the developer, it depends on how good he is to replicate the layout with the actual native views as close as the design.
I am not good in designing but I think there are a few points we need to take note.
1. Theme: Is the app targeted for professional/corporate or leisure user?
2. Colour: If #1 is for corporate, using dark gray or blue is more suitable. Less colour combination is recommended. For kids app, you may want to use more colourful theme. What colour brings what kind of mood? Soft or hard colour accent.
3. Use of semi transparent panels. Alpha.
4. Use of colour gradient.
5. Use of shadow.
6. Use of rounded/curve corners.
7. Colour contrast between background and text colour.
8. Distance between buttons and panels. Padding and margins.
9. Text size: important title should be bigger
10. Display on different screen resolutions or devices
11. Consistency of design
12. Disabled buttons look, panel and button invisibility
13. Less is more, don't squeeze a lot of buttons on a screen
14. Use scrollable view such as scroll pane or custom list view
15. Use anchors
16. Use font-awesome or nice icon packs
17. Use high quality image
18. Check examples of other people design
This is only about the UI. For UX, you may also want to consider selection of views such as more user friendly date picker instead of text input. Loading indicator, animation, transition, etc.