MobileDriver Vs AppinumDriver

I am new to mobile automation. I found that we can define Android/IOS driver as below. So, can you please explain the difference between these two statements?.

MobileDriver driver = new AndroidDriver(URL, dc)
AppiumDriver driver = new AndroidDriver(URL, dc)

And what is the the most effective way to define driver from a designed perspective?.