M.P.
Lying is common at this age. The child's brain is still not mature enough to fully understand the difference between truth and fantasy. When he said he went to China he was telling a story about what he'd have liked to have done. My response would be something along the line of, "so, you'd like to go to China. That would be fun. However, that's not the truth. You didn't get your homework done because such and such. Now lets get that homework done." The emphasis is on teaching the difference and on doing what is missing.
Do not call him a liar. I know of one mother who was adamant that her 6 yo was a liar and she still is one. She got the name and lives up to it, several years later.
Teach the difference between the truth and a lie every time he tells a lie. Say, "I know that's not the truth. The truth is____," Don't set him up to tell another lie by asking him what the truth is. You tell him. Emphasize the truth and not the lie.
As to sneaking food, don't ask him why, He really doesn't know why. I would try giving him a snack just before going to bed. I would guess that he's hungry. I would talk with him about what the two of you can do to stop the night time raids. I wouldn't punish him. I would work on finding a solution so he doesn't get up in the night to get the snack.
I would put the iPad in a place he doesn't have access to. Make it easy for him to follow the rules. It's just too big a temptation to be able to get it.
He does these things because it's fun, he wants to, etc. At 7 he is still learning how to delay gratification. Some adults never learn. Help him learn by not putting temptation in front of him and by giving him opportunities to earn privileges. Perhaps he can stay up to 10 on Friday night to play with his iPad if he stays in bed every week night. That sort of thing.