how to develop applications