If this had been my 4 year old, I'd be doing some troubleshooting by asking myself some questions.
First I like to focus on basic needs.
1. Is my child getting well-balanced meals? These are meals that have a good balance of protein and carbs, fresh and prepared foods. Kids have ways of using food as a battleground with parents. I always try to offer a good variety of things a kid *usually* likes and giving three things on each plate or meal, so there's at least one or two choices they'll likely be on friendly terms with.
2. Don't *make* your child eat. If this is becoming a power struggle, (kid doesn't want what I have to offer), I just say "This is what I have for dinner tonight." No more talking. That food is available when they are hungry later. If you decide not to save the food, then decide in advance what you want to offer and put it in a bowl. I do this with my seven year old, who loves to try to negotiate on food. A banana, cheese stick, some pretzels or almonds-- I put these in a bowl for if he's hungry later and leave it on the table until bedtime. Again, I offer choices I can live with, but he does have to eat by bedtime. And he can leave whatever he didn't want in the bowl-- there's no discussion and I don't offer substitutions. :)
Getting him dressed for school a problem? He can either get dressed at home or at school. Take him there in his pajamas and drop him off with day clothes. Let the teachers know ahead of time-- give them a head's up that you might be doing this and that he is to go dress himself if he refuses to dress before school. My guess is that you will only have to do this a couple times before the allure of throwing a fit loses the excitement. If *you* have a backup plan for this, you will give yourself space to feel less stressed in those moments and that will help you stay more emotionally neutral-- instead of you owning this problem, you are handing it back to him. You don't *have* to get dressed before school-- no one is going to make you-- but it *is advisable* to do so.
Identifying which things are hills to die on and which you can just chalk up to "I'll let him figure this out" is important.
3. It's also important to create a strong schedule and sense of predictability for him. When you pick him up, are you talking to other parents or focused on your child? Try to put it in your kid's perspective: I had to go to school, where I'm required to be my best self, while my younger brother got to stay home with mom; My mom is my best, favorite person, she's the person I trust the most. When she comes to pick me up, I can't wait to see her. I'm bursting because I have so many feelings I had to put on hold because I was at preschool and not with her.
(As a former preschool teacher, I can happily tell you how much our little ones *really* want to see their mommies and daddies! :) )
So, make sure that your chatting with other parents happens before the pickup, that way your son can feel like he's not having to compete for your attention. Bring a snack, too. Even kids who do half-day preschool are tired and often hungry-- usually they do more chatting than eating at that age. I'd have shopping and errands done while he's in preschool as well. Preschool is very demanding for little people (it looks just like play to us!), they are learning so much about how to be in groups, in the world, and that's why I mention it so prominently.
Make sure meals, rest times, and your 'together time' with your son is consistent so he can rely on it. My guess is that a lot of gentle touch,smiles, positive non-verbal physical attention (just touch) when he's just engaged in his own play can go a long way. When he cooperates immediately or anticipates a request, give positive feedback. "You really helped me when you set the table. It looks so nice for dinner." "Thanks for putting your toys away so quickly. You were being very responsible. " Simple praising of the *action* is helpful.
5. I'll give one other piece of advice-- we often try to talk our kids out of their bad moods and complaints. I find that instead of getting sucked into a long focus on their negative feelings, some simple empathetic validation goes a long way.
Child :" I never get to have a birthday."
Parent : (instead of "You just had a birthday party last year, your birthday will come soon") "You really want to have a birthday party, huh? That sounds like fun for you." and then "You must be looking forward to your next birthday. Birthdays are fun." This is about as much depth as they need at this age, mostly just having their feelings reflected back to them and understood.
I don't indulge the conversation and I don't dismiss it or try to explain it away, just acknowledge the feeling at the heart of things; I will sometimes ask my son "what would you want to do about that?" and see what answers he comes up with. Sometimes kids start thinking about other stuff and just forget they were upset-- so give it a try. Kids at this age are very mercurial... try not to make this wholly a discipline issue. Remember, he's FOUR.