Place the bread cubes and apple pieces in a 8 x 8 baking dish. In a medium bowl, whisk together the eggs, milk, half and half, sugar, vanilla, and salt. Pour the egg mixture over the bread cubes and toss to coat. Cover and refrigerate at least 4 hours, or overnight.
When you are ready to bake, preheat the oven to 350. In a small bowl, whisk together the flour, brown sugar, and cinnamon. Cut in the butter using a pastry blender or two knives. Stir in the pecan pieces, and sprinkle the streusel mixture over the french toast.
Bake 45-55 minutes, or until the french toast is golden brown on top and only jiggles slightly when shaken. Remove and let cool 5-10 minutes before serving. Top with maple syrup, if desired.