Preheat the oven to 350ºF and grease an 8x8 inch pan to prevent sticking.
For the streusel topping, in a small bowl, combine the cold diced butter, flour, oats, baking powder, light brown sugar, and ground cinnamon. Use a fork or your fingers to mix until crumbly, then set aside.
In a large bowl, beat the softened butter and brown sugar with an electric mixer until light and fluffy. This should take about 2-3 minutes. Then, add the egg, sour cream (or yogurt), and vanilla extract, mixing well until combined.
In a separate bowl, stir together the flour, ground cinnamon, baking soda, and a dash of salt. Gradually add this dry mixture to the butter mixture, stirring until just combined. Be careful not to overmix!
Gently fold in the diced Granny Smith apples. Once incorporated, pour the batter into the prepared baking dish and smooth it into an even layer.
For the cream cheese filling, use electric mixers to blend the softened cream cheese, granulated sugar, and vanilla extract until smooth and creamy. Spread this mixture evenly over the cake batter in the pan.
Sprinkle the prepared streusel topping evenly over the cream cheese layer, ensuring a nice coverage.
Bake in the preheated oven for 35 to 40 minutes, or until the top is golden brown and a toothpick inserted into the center comes out clean. Allow the cake to cool in the pan for at least 10 minutes before serving.
Notes
For added crunch and flavor, consider adding chopped pecans to the streusel topping.